Par défaut ContextMenu Style - WPF
Je suis en train de modifier le style par défaut de la ContextMenu en WPF.
Normalement, vous pouvez créer une copie de la valeur par défaut dans Expression Blend à l'aide de l'Edit de Contrôle des Pièces (Modèle) > Modifier une Copie du menu option. Cependant, je ne peux pas savoir comment faire avec un ContextMenu. Une idée de comment je peux obtenir le style par défaut à modifier?
Je suis en train d'essayer de désactiver le côté gauche du menu de contexte où les icônes sont généralement affichés.
Merci!
Mise à jour: Peut-être que je n'était pas clair à propos de la suppression d'icônes. Par exemple, si vous avez un menu contextuel avec pas d'icônes puis tout le côté gauche du menu est de l'espace perdu. Je voudrais modifier le style par défaut du menu de contexte d'arrière-plan pour supprimer cette. Simplement je ne sais pas comment accéder à ce style par défaut.
Oui, j'ai utilisé la réponse ci-dessous pour obtenir le modèle et l'a modifié à partir de là.
OriginalL'auteur Luke | 2009-03-13
Vous devez vous connecter pour publier un commentaire.
De certains modèles et de styles qui ne sont pas accessibles par le biais de l'Expression de l'Interface (comme le ContextMenu modèle) vous pouvez utiliser le code suivant pour extraire le modèle:
Ou en C#
J'aime Débordement de la Pile. Merci beaucoup pour ces réponses, exactement ce dont j'avais besoin.
OriginalL'auteur Luke
J'ai trouvé le moyen facile d'obtenir le ContextMenu modèle dans le Mélange:
Que c'est. Choisir où vous souhaitez que le modèle/style, et vous avez terminé.
Voici le balisage j'ai eu:
Et le style/modèle j'ai eu:
Espère que cette aide. Habituels MME de rigueur, les pinceaux dans le style par défaut ne sont pas trouvés. 🙂
Semble pas être une pleine XAML. Où est la définition de "ContextMenuControlTemplate1'?
OriginalL'auteur dex3703
Essayez ce qui suit: (Mettez ce code dans votre Ressources partie de votre XAML) Cela devrait supprimer l'icône de la console depuis le menu contextuel.
OriginalL'auteur Jonathan Perry
En fait l'espace ne fait pas partie de la ContextMenu c'est une partie de MenuItem. Donc, il suffit de glisser un MenuItem à votre fenêtre dans expression blend et de créer une copie de la commande. J'espère que votre ContextMenu déclaration est la suivante
Et à l'intérieur de votre MenuItem ControlTemplate vous pouvez voir l'espace comme ci-dessous. Afin de supprimer l'Icône et la Première Colonne de la grille que j'ai marqué dans la capture d'écran.
Il affiche une erreur, "ContextMenu ne peut pas avoir de logique ou de visual parent" si j'ajoute le ContextMenu à la fenêtre.
Oui, il y a aussi les styles au sein de la ContextMenu pour le menu de gauche qui doivent être enlevés. C'est le ContextMenu styles que je ne peux pas accéder à l'aide de l'Expression de l'interface. J'ai posté une solution ci-dessous pour en extraire le modèle à l'aide de code.
OriginalL'auteur Jobi Joy
L'espace supplémentaire sur la gauche est due à la petite coche qui s'affiche lorsque vous définissez
IsCheckable
etIsChecked
àtrue
surMenuItem
.La coche est le modèle de
MenuItem
donc, si vous modifiez que vous pouvez prendre.IsCheckable
propriété affecte l'interaction de l'utilisateur avec un élément de menu, pas de savoir si le check/zone de l'icône est affichée dans le menu. En fait, la valeur par défaut est déjàFalse
. Le paramètreTrue
simplement des cas, la coche en regard de basculer automatiquement chaque fois que l'utilisateur sélectionne cet élément de menu.OriginalL'auteur Robert Macnee