扩展 WPF 工具包 - ChildWindow 不允许焦点父级
Extended WPF Toolkit - ChildWindow do not allow focus parent
我有一个 ChildWindow,它覆盖了一个具有输入和按钮的视图。如果打开 ChildWindow,我将无法单击任何好的按钮。但是使用 TAB 我可以切换焦点和 select 其中一个按钮并按回车键。
知道如何防止这种情况发生吗?
感谢任何帮助...
代码真的很简单,没什么特别的...
MainWindow.xaml
<Grid>
<xctk:ChildWindow Name="chWindow" IsModal="True" WindowStartupLocation="Center">
<TextBlock Text="Hello World ..." />
</xctk:ChildWindow>
<StackPanel>
<Button Content="Load" Click="OnLoadClicked"/>
<Button Content="Re-Initialize" Click="OnInitClicked"/>
<Button Content="Modal dialog" Click="OnModalClicked" />
<ListBox x:Name="listBox" />
</StackPanel>
</Grid>
MainWindow.xaml.cs
public MainWindow(IModuleCatalog moduleCatalog, IModuleManager moduleManager)
{
InitializeComponent();
this.DataContext = this;
this.ConfirmationRequest = new InteractionRequest<IConfirmation>();
this.moduleCatalog = moduleCatalog;
this.moduleManager = moduleManager;
UpdateModulesList();
this.Loaded += (s, e) => this.chWindow.Show();
}
更新:尝试在 child window 上将 KeyboardNavigation.TabNavigation 设置为循环;这应该是一个更好的解决方案。
您可以尝试处理 PreviewLostKeyboardFocus 事件并简单地不允许它通过;这应该将重点放在您的 child window.
我有一个 ChildWindow,它覆盖了一个具有输入和按钮的视图。如果打开 ChildWindow,我将无法单击任何好的按钮。但是使用 TAB 我可以切换焦点和 select 其中一个按钮并按回车键。
知道如何防止这种情况发生吗?
感谢任何帮助...
代码真的很简单,没什么特别的...
MainWindow.xaml
<Grid>
<xctk:ChildWindow Name="chWindow" IsModal="True" WindowStartupLocation="Center">
<TextBlock Text="Hello World ..." />
</xctk:ChildWindow>
<StackPanel>
<Button Content="Load" Click="OnLoadClicked"/>
<Button Content="Re-Initialize" Click="OnInitClicked"/>
<Button Content="Modal dialog" Click="OnModalClicked" />
<ListBox x:Name="listBox" />
</StackPanel>
</Grid>
MainWindow.xaml.cs
public MainWindow(IModuleCatalog moduleCatalog, IModuleManager moduleManager)
{
InitializeComponent();
this.DataContext = this;
this.ConfirmationRequest = new InteractionRequest<IConfirmation>();
this.moduleCatalog = moduleCatalog;
this.moduleManager = moduleManager;
UpdateModulesList();
this.Loaded += (s, e) => this.chWindow.Show();
}
更新:尝试在 child window 上将 KeyboardNavigation.TabNavigation 设置为循环;这应该是一个更好的解决方案。
您可以尝试处理 PreviewLostKeyboardFocus 事件并简单地不允许它通过;这应该将重点放在您的 child window.