2

「KeyTip」は、RibbonControlsLibrary (3.5.41019.1) を使用すると正しく機能しません。シンプルな RibbonWindow を作成します。

  1. いくつかのタブを追加します
  2. ボタンのようないくつかのコントロールを追加します
  3. ラベルやヘッダーなどのプロパティを設定する
  4. タブでKeyTipプロパティを設定する

KeyTip を設計モード (VS2010)でテストすると、すべてが期待どおりに機能します。しかし、プロジェクトを Windows アプリケーションとしてビルドすると、次のことが起こります。

  • ALT+KeyTipはキーヒントのみを表示し、フォーカスは変更されません。期待される動作は、タブの変更です...

クリーンな 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>
4

2 に答える 2

1

WPF ウィンドウを表示する前に、次のコード行を追加することで問題を解決できました。

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

これは、少なくとも WinForm が WPF ウィンドウの前に表示される場合、同じプロジェクトで WinForms と WPF ウィンドウを混在させる場合に必要です。

于 2012-05-25T06:22:15.997 に答える
0

リボン コントロールで次のプロパティを追加します: KeyboardNavigation.ControlTabNavigation

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

それは私のために働いています。

于 2012-05-24T20:00:49.260 に答える