没有 XAML 的 WPF 上下文菜单

Context Menu in WPF without XAML

我正在尝试设计一个内部有 256 个按钮的应用程序。这些按钮是通过在 c# 中使用 "for" 循环添加的,因此它们不在 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
    }}

您可以像这样创建上下文菜单:

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

并将其附加到这样的按钮上:

 button.ContextMenu = c;