【发布时间】:2019-07-08 09:53:43
【问题描述】:
是否有可能在禁用的 WPF 窗口上处理事件?主窗口被其他窗口的.ShowDialog() 禁用。在我的应用程序中,一次只启用一个窗口,我想提高可用性。如果用户点击了错误的(禁用的)主窗口,应用程序应该自动聚焦到启用的窗口。
我知道禁用意味着窗口不响应任何事件,但是有没有像全局事件处理程序或一些特殊的 WPF 事件这样的解决方案?
我尝试了PreviewMouseLeftButtonDown 事件,但没有成功。
// event called from some special/ global event on disabled window
private void Window_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
if(App.Current.Windows.Count > 1)
{
foreach(Window w in App.Current.Windows)
{
if(w.IsEnabled)
{
w.Focus();
break;
}
}
}
}
感谢您的想法/解决方案!
【问题讨论】: