我正在开发 WPF 中的 CAD 程序,并且正在寻找一种方法来计算呈现特定画笔时显示的控件数量。
所以说我有一个Ellipse
:
<Ellipse x:Name="Ellipse" Canvas.Top="25" Canvas.Left="50" Width="400" Height="250" Stroke="DarkBlue" StrokeThickness="5" />
我用VisualBrush
后面的代码填充它:
VisualBrush tileCounter = new VisualBrush();
Rectangle rect = new Rectangle() { Width = 10, Height = 10, Fill = Brushes.Blue, Stroke = Brushes.BlueViolet, StrokeThickness = 1 };
tileCounter.Visual = rect;
tileCounter.TileMode = TileMode.Tile;
tileCounter.Stretch = Stretch.None;
tileCounter.Viewport = new Rect(0, 0, 10, 10);
tileCounter.ViewportUnits = BrushMappingMode.Absolute;
Ellipse.Fill = tileCounter;
有什么方法可以让VisualBrush
报告返回它渲染为填充的矩形形状的多少实例Ellipse
?或者我可以进行代码更改以使用Fill
or单独从父级引用每个视觉对象Background
?
我目前正在开发一种工具来绘制具有任意数量的边的图形LineSegment
,ArcSegment
或者QuadraticBezierSegment
画笔是用户使用输入的高度、宽度和网格大小定义的网格。用户也可以重新对齐网格。这使得简单的数学解决方案非常难以实现,因此 WPF 解决方案将是更可取的。
我的最终目标是获得它尝试渲染的视觉效果总数,然后在整个填充中渲染每个视觉效果的多少。