【问题标题】:Extended WPF Toolkit - ChildWindow do not allow focus parent扩展的 WPF 工具包 - ChildWindow 不允许焦点父级
【发布时间】:2016-10-07 14:41:10
【问题描述】:

我有一个覆盖有输入和按钮的视图的 ChildWindow。如果打开 ChildWindow,我将无法单击任何好的按钮。但是使用 TAB 我可以切换焦点并选择其中一个按钮并按 Enter。

知道如何防止这种情况发生吗?

感谢任何帮助...

代码真的很简单,没什么特别的……

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();
    }

【问题讨论】:

  • 向我们展示一些代码.. 你如何启动窗口?那么提供一些建议会很有帮助

标签: c# wpf childwindow


【解决方案1】:

更新:尝试在子窗口上将KeyboardNavigation.TabNavigation 设置为Cycle;这应该是一个更好的解决方案。

您可以尝试处理 PreviewLostKeyboardFocus 事件,但不允许它通过;这应该将焦点保持在您的子窗口中。

【讨论】:

  • 好的,但它不会也为子窗口禁用还是您的意思是处理 ChildWindow 的焦点丢失?
  • 我的意思是在子窗口上处理它,但这并不是说它不会有自己的问题。我真的不记得所有焦点事件在 WPF 中是如何交互的——也许预览事件会向下隧道,当子窗口中的任何控件失去焦点时你会得到它,所以你需要检查发件人是谁。如果您仍然遇到问题,请告诉我,我会启动 Visual Studio 来实际尝试:)
  • 谢谢,我试试看 ?
  • 查看更新;很抱歉没有早点记住这些东西,我已经有一段时间没有使用 WPF 了 :)
  • 感谢您的更新...您的解决方案有效。我要做的就是在子窗口显示后将焦点显式设置为子窗口。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多