/ / KeyTip ne fonctionne pas dans Microsoft Ribbon - c #, wpf, ribbon

KeyTip ne fonctionne pas dans Microsoft Ribbon - c #, wpf, ruban

Le "KeyTip" ne fonctionne pas correctement en utilisant la RibbonControlsLibrary (3.5.41019.1). Je crée une simple RibbonWindow:

  1. Ajoutez quelques onglets
  2. Ajoutez des contrôles comme un bouton
  3. Définir des propriétés telles que des étiquettes et des en-têtes
  4. Met le KeyTip propriétés sur les onglets

Je teste le KeyTip dans mode desgin (VS2010) et tout fonctionne comme prévu. Mais lorsque je crée le projet en tant qu'application Windows, les événements suivants se produisent:

  • ALT + KeyTip ne montre que les touches, aucune mise au point ne change. Le comportement attendu serait un changement d'onglet ...

J'ai essayé de créer un WpfRibbonProject propre et j'ai fait la même chose, puis cela fonctionne pour une raison quelconque. Le projet non fonctionnel est un mélange de Formes et WPF et un formulaire s'affiche avant la fenêtre WPF. Est-ce que ceci pourrait être le problème? Je vois pourquoi ce serait un problème?

Code source:

        <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>

Réponses:

1 pour la réponse № 1

J'ai réussi à résoudre le problème en ajoutant la ligne de code suivante avant d'afficher la fenêtre WPF:

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

Cela est nécessaire si vous mélangez des fenêtres WinForms et WPF dans le même projet au moins si WinForm est affiché avant la fenêtre WPF.


0 pour la réponse № 2

Dans Ribbon cotrol, ajoutez la propriété: KeyboardNavigation.ControlTabNavigation

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

Cela fonctionne pour moi.