私は 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
か? または、 or を使用して親から各ビジュアルを個別に参照するために行うことができるコード変更はありますFill
かBackground
?
私は現在、、、、または任意の数の側面を持つ図形を描画するツールに取り組んでおりLineSegment
、ブラシは、ユーザーが高さ、幅、およびグリッド サイズを入力して定義するグリッドです。グリッドは、ユーザーが再調整することもできます。これにより、単純な数学的ソリューションを実行するのが非常に難しくなるため、WPF ソリューションが望ましいでしょう。ArcSegment
QuadraticBezierSegment
私の最終的な目標は、レンダリングしようとするビジュアルの総数を取得し、塗りつぶし全体でレンダリングされる各ビジュアルの量を取得することです。