2009-07-22 17 views

Odpowiedz

18

zdobyć pozycję menu, i to zrobić:

_menuItem.IsSubmenuOpen = true; 
18

Sprawdź ten przykład, w jaki sposób, aby otworzyć menu kontekstowe.

http://www.uxpassion.com/2009/01/how-to-enable-and-show-context-menu-on-left-click-in-wpf/

Podsumowując

można po prostu zadzwonić:

YourContextMenu.IsOpen = true; 

To spowoduje wyświetlenie menu kontekstowego, po prostu upewnij się jej wiąże się z FrameworkElement na którym jest wyświetlanie)

+1

Nie, OP pyta o klasę menu (System.Windows.Controls.Menu). Nie ma właściwości IsOpen. Być może myślisz o klasie ContextMenu. –

+0

Będziesz także potrzebował zainicjować 'YourContextMenu.PlacementTarget' z zamierzonym" docelowym "UIElement. W przeciwnym razie menu zbudowane dynamicznie z łańcucha XAML (przy użyciu 'XamlReader') nie będzie w stanie rozwiązać zasobów i nie będzie miało na przykład ikon. – zmechanic

0
void CmsBox_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) 
{ 
    box = sender as WpfBox; 
    ContextMenu cms = new ContextMenu(); 
    e.Handled = true; 
    ... 
} 
1
private void button_Click(object sender, RoutedEventArgs e) 
{ 
    var button= sender as FrameworkElement; 
    if (button != null) 
    { 
     button.ContextMenu.IsOpen = true; 
    } 
}