尝试在HierarchicalDataTemplate中捕获鼠标事件

时间:2012-05-12 01:40:24

标签: wpf treeview

我是wpf和这个网站的新手。如果我出现一些错误,请给我一些怜悯。

My HierarchicalDataTemplate是我的树视图项,由多个组件组成:两个文本块,图像和复选框,其中包含一些用于布局的堆栈面板。我的MouseEventHandler是用户点击文本框,图像或复选框时捕获的,是TreeViewItem.Selected。但是当我点击这些组件之间的微小空间时,它不会触发TreeViewItem.Selected。

我的第一个初步想法是我可能需要在堆栈面板上指定事件处理程序,该处理程序用于我的HierarchicalDataTemplate的布局。但是,即使我专门在堆栈面板上创建事件处理程序,它也没有引发事件。

你可以给我一些指导吗?

PS。我使用绑定IsSelected属性,但它从未通知更改其属性

1 个答案:

答案 0 :(得分:1)

Background="Transparent"内的最顶层布局容器设置HierarchicalDataTemplate

以下网格不会引发MouseLeftButtonDown事件:

<Grid MouseLeftButtonDown="handler" Width="200" Height="200">
</Grid>

但是以下是:

<Grid MouseLeftButtonDown="handler" Width="200" Height="200" Background="Transparent">
</Grid>

这是因为在第一种情况下它没有背景,并且没有任何东西可以引发MouseLeftButtonDown事件。因此,只有当用户点击该Grid中的某个元素时才会引发该事件。