【问题标题】:WPF 4 keyboard focus: never recieving key eventsWPF 4键盘焦点:从不接收键事件
【发布时间】:2010-12-06 11:55:15
【问题描述】:

在 WPF 4.0 中,如果在加载后交换窗口中的用户控件,我似乎无法使用任何键盘快捷键。一个代码示例说了一千个单词,所以这就是我正在做的事情:

Window window = new Window { Width = 800, Height = 600 };
window.Loaded += delegate
{
    editor = new EditorRoot();
    window.Content = editor;
};
app.Run(window);

window 获取 KeyDown 事件(并且路由命令工作正常),但 editor 从未获取任何键盘事件(其中也没有任何控件)。我试过了:

editor.Loaded += (sender, e) => Keyboard.Focus(editor);

...但这并没有做任何事情。 EditorRoot 扩展 UserControl 并具有 IsFocusable=true 任何想法有什么问题吗?

【问题讨论】:

    标签: c# wpf focus keyboard-shortcuts wpf-4.0


    【解决方案1】:

    如果这不起作用 - 使用 Dispatcher.BeginInvoke。根据我的经验 - 同步设置焦点并不总是有效。不仅在 WPF 4 中。

    【讨论】:

      【解决方案2】:

      也许您可以尝试FocusManager 而不是您的方法。我使用它,它可以工作,你甚至可以在 XAML 中使用它:

               FocusManager.FocusedElement=editor;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多