2016-08-05 8 views
0

Ich lerne WPF-Technologie. Ich habe solche benutzerdefinierte Klasse erstellt, die auf Maus nach oben Ereignisse reagieren sollen (sollte Popup-Menü anzeigen)Wie ContextMenu in benutzerdefinierten Klasse anzeigen?

public class CustomControl : UIElement 
{ 
    protected override void OnMouseUp(MouseButtonEventArgs args)  
    { 
     ContextMenu context_menu = new ContextMenu(); 
     // How to show context_menu at specific point? 
    } 
}; 

Ich weiß nicht, wie bei speficic Position erstellt Kontextmenü anzuzeigen. Es wurde keine Show-Methode angegeben. UIElement haben nicht ContextMenu eigneten Eigenschaft

Edit: Ich verwende XAML nicht (ich will nicht Abhängigkeit zwischen Quellcode und Design erstellen)

Antwort

1

Mit WPF Sie in der Regel ein Kontextmenü in XAML entwerfen würde. Eine kurze Anleitung, wie man das macht, ist this zum Beispiel.

Grundsätzlich schreiben Sie Ihr Kontextmenü innerhalb des jeweiligen Controls und verwenden Command s oder Mausereignisse wie Click, um ein bestimmtes Verhalten zuzuweisen.

+0

Danke, dieses Tutorial half mir (ich dachte, dass IsOpen-Eigenschaft nur über get-Methode zugegriffen) – LmTinyToon

+1

@ АлександрЛысенко meisten Eigenschaften von Steuerelementen, die durch Benutzerinteraktion geändert werden können, sind in WPF einstellbar. Während Sie alles realisieren können, ohne jemals den XAML zu berühren, ist es normalerweise viel einfacher, es zu benutzen. – Adwaenyth