我一直在尝试让我的WPF应用程序提示用户丢弃未保存的更改,或者在使用TreeView导航时取消.
如何取消用户的WPF TreeView点击?
如何使用MessageBox确认正确处理PreviewMouseDown事件?
我想我发现了一个错误.MessageBox与PreviewMouseDown不兼容.它似乎"处理"了一个点击,无论如何显示一个MessageBox,它的e.Handled是如何设置的.
对于这个XAML ......
...比较这些替代方法......
Sub TreeViewNodes_PreviewMouseDown(...) e.Handled = False End Sub Sub TreeViewNodes_PreviewMouseDown(...) MessageBox.Show("Test", "Test", MessageBoxButton.OK) e.Handled = False End Sub
这两种方法表现不同.没有MessageBox,TreeViewNodes_Selected()
或者TreeViewThings_Expanded()
会执行.使用MessageBox,他们不会.
这是一个错误还是在这里发生了一些我应该理解的事情?