Comment définir le texte à la tête d'une RibbonApplicationMenu
J'essaie d'avoir du texte dans le niveau supérieur d'une RibbonApplicationMenu (en essayant d'obtenir le mot "Fichier" là similaire à Word ou Outlook). Il semble que le Microsoft.Windows.Controls.Ribbon.RibbonApplicationMenu
http://msdn.microsoft.com/en-us/library/microsoft.windows.controls.ribbon.ribbonapplicationmenu.aspx prend en charge un SmallImageSource, mais aucun texte de propriété. Réglage de la Label
propriété ne fonctionne pas pour ce problème.
xmlns:ribbon="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary"
<ribbon:RibbonApplicationMenu Label="File"> <!--doesn't set the label -->
</ribbon:RibbonApplicationMenu>
Le but est d'avoir le mot "Fichier" apparaît dans la zone entourée ci-dessous.
- Microsoft a besoin de résoudre ce problème.
Vous devez vous connecter pour publier un commentaire.
La solution la plus simple (pour moi) est d'insérer un DrawingImage avec un GlyphRun à l'intérieur. Sur un post séparé est posée de savoir comment obtenir le AdvanceWidths et GlyphIndicies pour la GlyphRun. Le résultat est ci-dessous
Résultant De Ruban:
Supprimer les éléments indésirables pour le visuel de l'arbre, et de les remplacer par un TextBlock qui prend le texte de l'Étiquette de la propriété. Vous devez faire cela pour à la fois le bouton sur le principal de visual arbre et sur le popup visuelle de l'arbre. Enfin, puisque le texte est plus complexe que l'image typique, il est utile de revenir sur l'aero mettant en évidence les effets.
D'utiliser le code suivant, attribuez un nom à l'application menu dans le code XAML et appel
ReplaceRibbonApplicationMenuButtonContent
à partir de l'Chargé de gestionnaire d'événement de la fenêtre.Droit. Si vous ne voulez pas de code-behind et pas de complexes glyphe calculs, utiliser le code XAML suivant:
Avantages de cette approche:
Délicat! Vous pourriez avoir à remplacer le PART_ToggleButton du modèle avec votre propre version pour être en mesure de définir le texte.
À l'aide de la WPF Vizualizer montre que le modèle contient un StackPanel avec une Image et un Chemin d'accès (flèche bas), mais pas de TextBlock, donc je doute qu'il y a un endroit dans le contrôle en cours de spécifier le texte de l'étiquette.
Bien sûr, vous pouvez également créer une image qui contient le texte de votre choix.
Une autre façon de le faire est tout simplement à l'aide d'une grille et de la peinture d'un TextBlock au bon endroit. Assurez-vous de faire le TextBlock PAS HitTestVisible.
Avantages:
Inconvénient:
- a l'air moins sympa sur Windows XP
La solution suivante a été posté sur un forum MSDN. Elle implique de modifier le style par défaut (?) thème.
Le post sur le forum comporte un ZIP des sources modifiées, mais le lien ne fonctionne plus.