Verwandte Frage (Details)
Tunneling events and ContextMenuRightDoubleClick und Kontextmenü
Ich habe eine WPF-Leinwand, auf die ich ein ContextMenu assoziiert ..
Das ist cool. Jetzt habe ich eine Aktion auf der rechten Doubleclick zu implementieren ...
In der Tat habe ich nie erhalten auf der rechten Mausclickcount == 2 ...
Was ist zu tun?
Ich brauche ContextMenu auf einfache (rechts) klicken, anzuzeigen und Action2 OnRightDoubleClick ..
protected override void OnPreviewMouseRightButtonUp(MouseButtonEventArgs e)
{
if (e.ClickCount == 1)
{
#region SINGLE CLICK
stillSingleClick = true;
Thread thread = new Thread(
new System.Threading.ThreadStart(
delegate()
{
Thread.Sleep(System.Windows.Forms.SystemInformation.DoubleClickTime);
this.Dispatcher.Invoke(
System.Windows.Threading.DispatcherPriority.Background,
new Action(
delegate()
{
if (stillSingleClick)
{
base.OnPreviewMouseRightButtonUp(e);
}
stillSingleClick = false;
}
));
}
));
thread.Start();
#endregion SINGLE CLICK
}
else if (e.ClickCount == 2)
{
stillSingleClick = false;
base.OnPreviewMouseRightButtonUp(e);
}
}
Kontextmenüs in Sie sind nicht als Folge der WM_RBUTTONUP angezeigt, werden sie als Folge der WM_CONTEXTMENU angezeigt. Der Grund dafür ist, dass die Tastatur (Umschalttaste + F10 oder Kontextmenütaste) das Kontextmenü aufrufen kann. Es gibt keine Möglichkeit zu unterscheiden WM_CONTEXTMENU von Tastatur oder Maus aufgerufen wird. Wenn Sie das angegebene Verhalten wünschen, müssen Sie die Tastaturfunktionalität aufgeben. Ich empfehle dringend, das "normale" Verhalten beizubehalten und statt eines Rechts-Doppelklicks einen anderen Mechanismus wie Strg + Linksklick zu verwenden. – Tergiver
@Tergiver: Danke. Siehe http://stackoverflow.com/questions/4464936/tunneling-events-and-contextmenu – serhio
Ich habe die Frage nicht nahe genug gelesen. Ich habe nur angenommen, dass der Code in der ClickCount = "1" -Anweisung eine Aktion war, aber jetzt sehe ich, dass es im Grunde genommen die gleiche ist wie die Antwort, die ich zur Verfügung gestellt habe. Meine schlechte .. Gelöschte Antwort –