键提示在功能区中不起作用Microsoft

本文关键字:不起作用 Microsoft 功能区 提示 | 更新日期: 2023-09-27 18:35:10

"KeyTip"无法使用功能区控件库 (3.5.41019.1) 正常工作。我创建了一个简单的功能区窗口:

  1. 添加几个选项卡
  2. 添加一些控件,如按钮
  3. 设置标签和标题等属性
  4. 在选项卡上设置快捷键提示属性

我在设计模式(VS2010)下测试了键盘提示,一切按预期工作。但是,当我将项目构建为 Windows 应用程序时,会发生以下情况:

  • ALT+快捷键提示仅显示快捷键提示,焦点没有更改。预期的行为将是选项卡的更改...

我尝试创建一个干净的 WpfRibbonProject 并做了同样的事情,然后由于某种原因它起作用了。无工作项目是窗体和 WPF 的混合,窗体显示在 WPF 窗口之前。这可能是问题所在吗?我不明白为什么这会是一个问题?

源代码:

        <ribbon:RibbonTab x:Name="HomeTab" 
                          Header="Home" KeyTip="H">
            <ribbon:RibbonGroup x:Name="Group1" 
                                Header="Group1">
                <ribbon:RibbonButton Label="Hej" KeyTip="T" />                    
            </ribbon:RibbonGroup>
        </ribbon:RibbonTab>
        <ribbon:RibbonTab Header="Tab1">
            <ribbon:RibbonGroup Header="Min grupp">
                <ribbon:RibbonButton Label="Test" />
                <ribbon:RibbonSplitButton Label="Testen">
                    <ribbon:RibbonMenuItem Header="Jaha" />
                </ribbon:RibbonSplitButton>
            </ribbon:RibbonGroup>
        </ribbon:RibbonTab>
        <ribbon:RibbonTab Header="Tab2" KeyTip="2" />
        <ribbon:RibbonTab Header="Tab3" KeyTip="3" />
</ribbon:Ribbon>

键提示在功能区中不起作用Microsoft

在显示 WPF 窗口之前,我设法通过添加以下代码行来解决此问题:

System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(this);

如果在同一项目中混合使用 WinForms 和 WPF 窗口,则至少如果 WinForm 显示在 WPF 窗口之前,这是必需的。

在功能

区中添加属性:键盘导航.控件选项卡导航

 <ribbon:Ribbon DockPanel.Dock="Top" SelectedIndex="1" KeyboardNavigation.ControlTabNavigation="Contained">

它对我有用。