WPF获取控件与行冲突

时间:2012-05-10 14:04:13

标签: c# wpf wpf-controls

我有一个看起来像this的led面板。这是使用包含带有列和行的网格的画布对象构建的。该矩阵的每个字段都包含一个包含椭圆的LED控件。

现在我想在画布上画一条线。我想我能够做到这一点,但我怎样才能得到那条线上的所有LED控制器?

1 个答案:

答案 0 :(得分:1)

如果您绘制System.Windows.Shapes.Line,则可以通过Geometry属性获取该行的RenderedGeometry,并使用该几何作为几何hit-test的输入。< / p>

这样的命中测试将通过调用带有VisualTreeHelper.HitTest参数的GeometryHitTestParameters来完成。 HitTest会为你的HitTestResultCallback调用线条几何所覆盖的每个椭圆。

我不能完全确定几何命中测试是否适用于“空”几何,如宽度为零的线。但你可以尝试一下,如果它不起作用,例如使用倾斜的矩形几何而不是线。或者,您可以使用Geometry.GetWidenedPathGeometry创建“加宽”几何体来模拟使用具有一定厚度的笔。