2
我有一个TreeView,当用户双击一个TreeViewItem时会打开一个新窗口。这个新窗口位于上一个窗口(具有TreeView的窗口)的前面和中间(WindowStartupLocation="CenterOwner"
)。有时,当这个新窗口打开时,鼠标直接位于新窗口的MenuItem的顶部,并且它导致MenuItem Click事件被触发,这在我的程序中是不受欢迎的。我尝试在TreeView MouseDoubleClick处理程序中将e.Handled设置为true,并没有改变这种行为。双击TreeView导致MenuItem点击新窗口
这里是我的TreeView:
<TreeView x:Name="treeView" MouseDoubleClick="treeView_MouseDoubleClick" ItemsSource="{Binding}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding MessageHeaders}" ItemTemplate="{StaticResource childrenDataTemplate}">
<TextBlock Text="{Binding Path=ModuleName}"/>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
而且treeView_MouseDoubleClick:
private void treeView_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
if (e.ChangedButton == MouseButton.Left)
{
e.Handled = true;
APIEditorWindow editor = new APIEditorWindow();
editor.Owner = this;
editor.Show();
}
}
MenuItem Click事件具有'RoutedEventArgs'作为输入,而不是'MouseButtonEventArgs',它不包含点击计数。我尝试使用'预览'事件,并没有奏效。 – drmr9grl