private DrawingVisual Create() { countCreate++; var square = new DrawingVisualFx(); using (DrawingContext dc = square.RenderOpen()) { dc.DrawEllipse(null, Stroke, new Point(Width / 2, Height / 2), Width / 2 + Stroke.Thickness / 2, Height / 2 + Stroke.Thickness / 2); if (Angle.HasValue) { dc.PushTransform(new RotateTransform(Angle.Value, Width / 2, Height / 2)); { PolyLineSegment polySeg = new PolyLineSegment(new Point[] { new Point(Width * 0.2, Height * 0.3), new Point(Width * 0.8, Height * 0.3) }, true); PathFigure pathFig = new PathFigure(new Point(Width * 0.5, -Height * 0.22), new PathSegment[] { polySeg }, true); PathGeometry pathGeo = new PathGeometry(new PathFigure[] { pathFig }); dc.DrawGeometry(Brushes.AliceBlue, StrokeArrow, pathGeo); } dc.Pop(); } dc.DrawEllipse(Background, null, new Point(Width / 2, Height / 2), Width / 2, Height / 2); dc.DrawText(FText, new Point(Width / 2 - FText.Width / 2, Height / 2 - FText.Height / 2)); } return(square); }
private static void OnEffectChanged(DependencyObject o, DependencyPropertyChangedEventArgs e) { DrawingVisualFx drawingVisualFx = o as DrawingVisualFx; if (drawingVisualFx != null) { drawingVisualFx.setMyProtectedVisualEffect((Effect)e.NewValue); } }