Я работаю над программой CAD в WPF и ищу способ подсчета количества элементов управления, отображаемых при рендеринге конкретной кисти.
Так скажи, у меня есть 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
или Background
?
В настоящее время я работаю над инструментом для рисования фигур с любым числом сторон LineSegment
, ArcSegment
или QuadraticBezierSegment
, а кисть представляет собой сетку, которую пользователь определяет с помощью введенных высоты, ширины и размер сетки. Сетка также может быть перестроена пользователем. Это делает простые математические решения чрезвычайно трудными для выполнения, поэтому предпочтительным будет решение WPF.
Моя конечная цель - получить общее количество визуализаций, которые он пытается отобразить, и затем, сколько визуализаций визуализируется по всей заливке.