Silverlight 4.0 MouseLeftButtonDown不会在TreeViewItem上激发

Silverlight 4.0 MouseLeftButtonDown不会在TreeViewItem上激发,silverlight-4.0,silverlight-toolkit,Silverlight 4.0,Silverlight Toolkit,调用未到达TreeView\u MouseLeftButtonDown事件处理程序。。 有什么想法或解决方法吗?您是否注意到当单击Silverlight按钮时,MouseLeftButtonDown和MouseLeftButtonUp事件不会触发?原因是按钮通过重写OnMouseLeftButtonDown和OnMouseLeftButtonUp处理程序来处理这两个事件。在OnMouseLeftButtonDown覆盖中,将引发Click事件,并将MouseLeftButtonDown事件标记为



调用未到达TreeView\u MouseLeftButtonDown事件处理程序。。
有什么想法或解决方法吗?

您是否注意到当单击Silverlight按钮时,MouseLeftButtonDown和MouseLeftButtonUp事件不会触发?原因是按钮通过重写OnMouseLeftButtonDown和OnMouseLeftButtonUp处理程序来处理这两个事件。在OnMouseLeftButtonDown覆盖中,将引发Click事件,并将MouseLeftButtonDown事件标记为已处理,以便它不会在可视树中冒泡。OnMouseLeftButtonUp覆盖还将MouseLeftButtonUp标记为已处理


可以使用Button控件的ClickMode属性更改此内容。它有以下值-悬停、按下、释放。按下默认值,我们已经解释过了。当我们将ClickMode设置为Release时,单击事件将在OnMouseLeftButtonUp覆盖中引发,MouseLeftButtonDown和MouseLeftButtonUp事件将再次在按钮内部处理。如果我们将ClickMode设置为Hover,则Click事件将与MouseEnter事件一起引发,我们还可以使用鼠标按钮事件。

这背后的原因是
TreeView
也会处理此类事件。若要覆盖此类处理,必须在代码中使用以下命令处理它:

<Grid x:Name="LayoutRoot" Background="White">
    <sdk:TreeView MouseLeftButtonDown="TreeView_MouseLeftButtonDown">
        <sdk:TreeViewItem Header="this is first item"/>
    </sdk:TreeView>
</Grid>

你是从外部渠道得到的吗?如果是这样的话,添加一个链接到您从中获得它的源代码会有所帮助。
treeItem.AddHandler(UIElement.MouseLeftButtonDownEvent, new MouseButtonEventHandler(treeItem_MouseLeftButtonDown), true);