2016-05-15 4 views
0

Я пытаюсь создать приложение с 256 кнопками внутри. Эти кнопки добавляются с помощью цикла «for» в C#, поэтому они не находятся в коде XAML. Моя проблема в том, что - я не знаю, как добавить контекстное меню к такой кнопке. Контекстное меню должно открываться при нажатии правой кнопки мыши на определенной кнопке. Затем я хочу иметь возможность изменять некоторую переменную в коде при выборе некоторого элемента контекстного меню.Контекстное меню в WPF без XAML

Мой код для добавления кнопок следующая:

public MainWindow() 
{ 
    InitializeComponent(); 

    int num = number(3); 

    for(int i =0; i<(num*num); i++) 
    { 
     //i want initialize the context menu here 
     Button button = new Button(); 

     button.Name = "Butt" + counter; 

     button.Content = "New"; 

     counter++; 
     button.Height = 35; 
     button.Width = 35; 
     button.Click += new RoutedEventHandler(NewButton_Click); 
     wp.Children.Add(button); // Wrap Panel where buttons displayed 
    }} 

ответ

1

Вы можете создать контекстное меню, как это:

ContextMenu c = new ContextMenu(); 
MenuItem i1 = new MenuItem(); 
i1.Header = "Some Header"; 
i1.Click += i1_Click; 
c.Items.Add(i1); 

и прикрепить его к кнопке, как это:

button.ContextMenu = c; 
+0

Хорошо, но что такое i1_Click? – hegendroffer

+0

Обработчик событий для нажатия на MenuItem. Подобно 'NewButton_Click', который является обработчиком событий для нажатия на вашу новую кнопку. – derpirscher

+0

Спасибо! Оно работает ! – hegendroffer