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); }
#pragma warning restore 0108 private static void OnEffectChanged(DependencyObject o, DependencyPropertyChangedEventArgs e) { DrawingVisualFx drawingVisualFx = o as DrawingVisualFx; if (drawingVisualFx != null) { drawingVisualFx.setMyProtectedVisualEffect((Effect)e.NewValue); } }
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; }