好吧,我在自定义FrameworkElement中获得了几个形状,以便进行命中测试选择。接下来的任务是,如果用户单击空白区域,则取消选择所有形状。默认情况下这不起作用,因为如果单击“空白”区域,FrameworkElement不会触发mousedown事件。
人们通过将一个背景矩形作为第一个drawingvisual放在他们的frameworkelements中来解决这个问题(这将接受点击,但将被视为与点击前景对象不同),或者他们处理“空”的mousedown事件构造FrameworkElement的类(在我的例子中是MVVM设置中的Viewmodel)?或者我不考虑的第三种方式?
谢谢
答案 0 :(得分:0)
尝试将背景设置为transparant,您很可能会发生鼠标停止事件。
不是从FrameworkElement派生,而是从Control类派生您的控件。 Control类具有Background属性,您将设置为transparant以获取鼠标按下事件。有关直接从FrameworkElement派生的评论,请参阅以下链接:
http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.aspx