WPF: So öffnen Sie ein ContextMenu aus allen Bereichen eines Grid-Steuerelements

7

Ich versuche, einem Element in einer ListBox in WPF ein ContextMenu hinzuzufügen;

%Vor%

Das Problem ist, dass das ContextMenu nur geöffnet wird, wenn man auf den tatsächlichen Kontext des Grids klickt. Ich möchte das Menü öffnen können, indem ich irgendwo auf den Listbox-Eintrag klicke.

Sollte ich das Raster in ein anderes Steuerelement einfügen?

    
Andronicus 14.10.2010, 00:13
quelle

2 Antworten

17

Es hat einige Monate gedauert, seit ich jede solide WPF-Entwicklung gemacht habe (wurde von der Anwendungsentwicklung zu einem echten Spielteam verschoben).

Aus dem Speicher möchten Sie die Eigenschaft ContextMenu für Border und dann Border.Background=Transparent festlegen. Wenn Sie den Hintergrund auf transparent setzen, wird sichergestellt, dass er an der Treffererkennung teilnimmt.

Alternative Lösung, wäre sicherzustellen, dass Sie Grid -Element horizontal und vertikal erstreckt, um den Container zu passen.

...

Ziehen Sie auch ContextMenu out als statische Ressource, so dass das Suchen / Bearbeiten in der Zukunft einfacher ist.

Hoffe, das hilft (und mein Gedächtnis scheitert nicht an mir).

BEARBEITEN: Ich habe zuvor eine ähnliche Frage zu StackOverflow beantwortet, siehe meine Antwort auf WPF: Anzeigen eines Kontextmenüs für die Objekte eines GridView . Diese Antwort ist vollständiger, da sie den Fokus auf ListItem setzt.

    
Dennis 14.10.2010, 00:25
quelle
2

Wie Sie bereits bemerkt haben, - dank Dennis - müssen Sie einen Hintergrund festlegen. Ja, transparenter Hintergrund ist auch OK:

%Vor%

VERWEIS: Ссылка

    
epox 22.06.2016 17:01
quelle

Tags und Links