Example #1
0
        static void CoordinateEndCompute(PiceCircle PiceCircleObj, double AngleGrad, double Radius)
        {
            Point  begin = (Point)PiceCircleObj.Resources["Begin"];
            double angle = AngleGrad * Math.PI / 180;
            Point  End   = new Point();

            End.X = Math.Abs(Radius + (begin.X - Radius) * Math.Cos(angle) + (Radius - begin.Y) * Math.Sin(angle));
            End.Y = Math.Abs(Radius + (begin.Y - Radius) * Math.Cos(angle) + (begin.X - Radius) * Math.Sin(angle));
            PiceCircleObj.Resources["End"] = End;


            UEParametrs Parameters = RotateUIElement(AngleGrad, PiceCircleObj.AngleRotate, begin, End, Radius);;
            var         text       = (TextBox)PiceCircleObj.Resources["ContentText"];

            if (AngleGrad == 360)
            {
                var Elipse = ((GeometryGroup)PiceCircleObj.Resources["Circle"]).Children[0];
                Elipse.SetValue(EllipseGeometry.RadiusXProperty, Radius);
                Elipse.SetValue(EllipseGeometry.RadiusYProperty, Radius);
                PiceCircleObj.Template = (ControlTemplate)PiceCircleObj.Resources["TemplateCircle"];
            }
            else if (AngleGrad != 0)
            {
                PiceCircleObj.Template = (ControlTemplate)PiceCircleObj.Resources["TemplatePice"];
            }
            text.SetValue(Canvas.TopProperty, Parameters.Top);
            text.SetValue(Canvas.LeftProperty, Parameters.Left);
            text.Width           = Parameters.Width;
            text.Height          = Parameters.Heigth;
            text.RenderTransform = new RotateTransform(Parameters.AngleElement, text.Width / 2, text.Height / 2);
        }
Example #2
0
        static object TextValidate(DependencyObject obj, Object value)
        {
            PiceCircle PiceCircleObj = (PiceCircle)obj;

            ((TextBox)PiceCircleObj.Resources["ContentText"]).Text = (string)value;
            return(value);
        }
Example #3
0
 static void CoordinateChange(PiceCircle PiceCircleObj, Double radius)
 {
     PiceCircleObj.Height = 2 * radius;
     PiceCircleObj.Width  = 2 * radius;
     PiceCircleObj.Resources["Center"]   = new Point(radius, radius);
     PiceCircleObj.Resources["Begin"]    = new Point(2 * radius, radius);
     PiceCircleObj.Resources["RadiusSz"] = new Size(radius, radius);
 }
Example #4
0
        static object AngleChangeCallback(DependencyObject obj, Object value)
        {
            PiceCircle PiceCircleObj = (PiceCircle)obj;

            CoordinateEndCompute(PiceCircleObj, (double)value, PiceCircleObj.Radius);

            return(value);
        }
 void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
     switch (connectionId)
     {
     case 1:
     this.MainElement = ((CircleControl.PiceCircle)(target));
     return;
     }
     this._contentLoaded = true;
 }
Example #6
0
        static object RadiusChangeCallback(DependencyObject obj, Object value)
        {
            PiceCircle PiceCircleObj = (PiceCircle)obj;
            var        radius        = (double)value;

            CoordinateChange(PiceCircleObj, radius);
            CoordinateEndCompute(PiceCircleObj, PiceCircleObj.Angle, radius);
            return(value);
        }
Example #7
0
        static object AngleRotateCallback(DependencyObject obj, Object value)
        {
            PiceCircle PiceCircleObj = (PiceCircle)obj;
            var        angle         = (double)value;
            Point      begin         = (Point)PiceCircleObj.Resources["Begin"];
            Point      end           = (Point)PiceCircleObj.Resources["End"];

            CoordinateEndCompute(PiceCircleObj, PiceCircleObj.Angle, PiceCircleObj.Radius);
            UEParametrs Parametrs = RotateUIElement(PiceCircleObj.Angle, angle, begin, end, PiceCircleObj.Radius);

            var text = (TextBox)PiceCircleObj.Resources["ContentText"];

            text.Height                   = Parametrs.Heigth;
            text.Width                    = Parametrs.Width;
            text.RenderTransform          = new RotateTransform(Parametrs.AngleElement, text.Width / 2, text.Height / 2);
            PiceCircleObj.RenderTransform = new RotateTransform(angle, PiceCircleObj.Radius, PiceCircleObj.Radius);
            return(value);
        }