WPF menu Contextuel sur clic gauche
J'ai une application WPF..Dans lequel j'ai un contrôle de l'Image dans le fichier Xaml.
Sur la droite, cliquez sur cette image j'ai un menu contextuel.
Je voudrais avoir même à être affichées sur "clic Gauche" aussi.
Comment puis-je faire dans MVVM façon ?
- Bien qu'il soit possible, il serait face au standard de windows attentes pour afficher un menu contextuel sur clic gauche.
- Quant à faire de ce MVVM, je crois que le XAML serait dans votre "vue", le Image_MouseDown de code C# serait dans votre "modèle de vue", et le "modèle" ne doit pas savoir quelque chose sur le menu contextuel.
InformationsquelleAutor Relativity | 2010-11-29
Vous devez vous connecter pour publier un commentaire.
Voici une XAML seule solution.
Il suffit d'ajouter ce style à votre bouton.
Cela va entraîner le menu contextuel pour ouvrir sur la gauche et clic droit. Profitez-en!
<MenuItem Header="Download" Command="{Binding DownloadButtonCommand}"/>
il ne fonctionne pas, tout conseiller?Vous pouvez le faire en utilisant l'événement MouseDown d'une Image comme celle
Et de montrer ensuite le ContextMenu dans le Gestionnaire d'événements dans le code derrière
Vous pouvez inventer votre propre DependencyProperty qui ouvre un menu contextuel lorsque l'image est cliquée, juste comme ça:
Et voici un code C# pour que la propriété:
PlacementTarget
de laContextMenu
retour à laDependencyObject
(dans mon cas,Button
), pour que le menu pour remplir correctement. C'était pour un contexte dynamique menu remplie pour chaque élément dans unListView
.vous ne devez ajouter le code dans la fonction Image_MouseDown
e.Manipulés = true;
Alors il ne va pas disparaître.
Si vous voulez faire cela, juste en Xaml sans l'aide de code-behind, vous pouvez utiliser Expression Blend déclencheurs de soutien:
vous pouvez lier le Isopen Propriété de la contextMenu à une propriété dans votre viewModel comme "IsContextMenuOpen".
mais le problème, c'est votre ne peut pas lier directement le contextmenu à votre viewModel parce que ce n'est pas une partie de votre userControl hiarchy.Pour résoudre cela, vous devez bing la propriété tag de la dataontext de votre point de vue.
Bonne chance.
Hey je suis tombé sur le même problème à la recherche d'une solution que je n'ai pas trouver ici.
Je ne sais rien à propos de MVVM donc ce n'est probablement pas MVVM se conformer, mais cela a fonctionné pour moi.
Étape 1: Donner à votre menu contextuel d'un nom.
Étape 2: Double-cliquez sur l'objet de contrôle et d'insérer ce code. L'ordre importe!
Étape 3: Profitez
Ce sera la réaction de la gauche & click droit. C'est un bouton avec un ImageBrush avec un ControlTemplate.
XAML
C#