2

我有一个自定义控件,它继承自FrameworkElement. 它包含一个Visual包含透明区域的区域。我试图让整个控件区域响应命中测试,但此刻,当我单击显示透明区域的控件的一部分时Visual,单击会传递到底层。

有没有一种方法可以在不使用 hack 的情况下使整个控件可命中测试?

我想远离诸如绘制Visual白色背景之类的技术,或者Border在具有相同事件处理程序集的自定义控件周围添加一个。

提前致谢!

4

2 回答 2

4

只需使用透明画笔,它就会响应命中测试。

例如,如果您有空背景画笔,那么命中测试将直接通过。

如果您使用 Brushes.Transparent 作为背景或填充区域,那么它将适用于命中测试。

于 2012-06-05T00:53:52.177 回答
1

使用 Background 或 Fill = "{x:Null}" 这是某些类(如 Grid)的默认值,与 Background 或 Fill = "Transparent" 不同。将透明设置为背景/填充颜色应该可以。

于 2012-06-05T00:57:42.380 回答