私はこのように見えるLEDパネルを持っています。これは、列と行のあるグリッドを含むキャンバスオブジェクトで構築されています。そのマトリックスの各フィールドには、楕円を含むLEDコントロールが含まれています。
今度はキャンバスに線を引きたいと思います。私はそれができると思いますが、どうすればそのラインにあるすべてのLEDコントロールを取得できますか?
私はこのように見えるLEDパネルを持っています。これは、列と行のあるグリッドを含むキャンバスオブジェクトで構築されています。そのマトリックスの各フィールドには、楕円を含むLEDコントロールが含まれています。
今度はキャンバスに線を引きたいと思います。私はそれができると思いますが、どうすればそのラインにあるすべてのLEDコントロールを取得できますか?
System.Windows.Shapes.Lineを描画すると、 RenderedGeometryプロパティによって線のジオメトリを取得し、そのジオメトリをジオメトリヒットテストの入力として使用できます。
このようなヒットテストは、GeometryHitTestParameters引数を指定してVisualTreeHelper.HitTestを呼び出すことで実行されます。HitTestは、線のジオメトリで覆われているすべての楕円に対してHitTestResultCallbackを呼び出します。
ジオメトリヒットテストが、幅がゼロの線のような「空の」ジオメトリで機能するかどうかは完全にはわかりません。しかし、試してみることができます。うまくいかない場合は、たとえば、線の代わりに傾斜した長方形のジオメトリを使用してください。または、 Geometry.GetWidenedPathGeometryを使用して「拡張」ジオメトリを作成することにより、特定の太さのペンの使用をシミュレートすることもできます。