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); }
static object TextValidate(DependencyObject obj, Object value) { PiceCircle PiceCircleObj = (PiceCircle)obj; ((TextBox)PiceCircleObj.Resources["ContentText"]).Text = (string)value; return(value); }
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); }
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; }
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); }
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); }