Zuerst dachte man, dass die Icon-Eigenschaft nur ein Bild enthalten kann. Aber es kann tatsächlich alles enthalten! Ich entdeckte dies zufällig, als ich programmgesteuert versuchte, die Image-Eigenschaft direkt auf eine Zeichenfolge mit dem Pfad zu einem Bild festzulegen. Das Ergebnis war, dass das Bild nicht angezeigt wurde, sondern der eigentliche Text des Pfades! Dann entdeckte ich, dass ich zuerst ein Image-Element erstellen und dieses auf die Icon-Eigenschaft setzen musste. Dies führte mich zu der Annahme, dass die Image-Eigenschaft nur ein Inhaltscontainer war, der sich im Symbolbereich links im Menü befindet, und ich hatte recht. Ich habe versucht, einen Knopf zu drücken, und es hat funktioniert!
Dies zeigt eine Schaltfläche mit dem Text "i" im Icon-Bereich des Menüpunktes. Wenn Sie auf die Schaltfläche klicken, wird das Ereignis Button_Click ausgelöst (das LanguageMenu_Click wird NICHT ausgelöst, wenn Sie auf die Schaltfläche klicken).
<MenuItem Name="LanguageMenu" Header="_Language" Click="LanguageMenu_Click">
<MenuItem.Icon>
<Button Click="Button_Click">i</Button>
</MenuItem.Icon>
</MenuItem>
Dies führt zu einer Alternative zu haben, um nicht ein Bild für das Symbol zu machen, aber Text mit einer Symbolschriftart zu verwenden, anstatt ein einfaches „Symbol“ angezeigt werden soll. Im folgenden Beispiel wird die Wingdings-Schriftart verwendet, die ein floppydisk-Symbol enthält. Dieses Symbol in der Schriftart ist dem Zeichen <
zugeordnet, das in XAML eine besondere Bedeutung hat. Daher müssen wir stattdessen die codierte Version <
verwenden. Das funktioniert wie ein Traum!Im Folgenden wird ein Floppydisk Symbol als Symbol auf dem Menüpunkt:
<MenuItem Name="mnuFileSave" Header="Save" Command="ApplicationCommands.Save">
<MenuItem.Icon>
<Label VerticalAlignment="Center" HorizontalAlignment="Center"
FontFamily="Wingdings"><</Label>
</MenuItem.Icon>
</MenuItem>
Dies scheint nur zu sein, was ich brauche und ich einen ToggleButton innerhalb des Stapels einfügen kann die Pin-Funktionalität hinzufügen, ohne dass benutzerdefinierte Steuerelemente erstellen oder Abbrechen der Tastaturnutzung. Vielen Dank :) – Nidonocu