KeyTip无法在Microsoft功能区中使用

时间:2012-05-24 15:10:10

标签: c# wpf ribbon

使用RibbonControlsLibrary(3.5.41019.1),“KeyTip”无法正常工作。我创建了一个简单的RibbonWindow:

  1. 添加几个标签
  2. 添加一些控件,如按钮
  3. 设置标签和标题等属性
  4. 在标签
  5. 上设置 KeyTip 属性

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

    • ALT + KeyTip 仅显示主要提示,没有焦点在变化。预期的行为将是标签的变化......

    我试图创建一个干净的WpfRibbonProject并做同样的事情,然后它出于某种原因工作。无工作项目是 Forms 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>
    

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

在功能区cotrol中添加属性:KeyboardNavigation.ControlTabNavigation

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

这对我有用。