没有 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;
我正在尝试设计一个内部有 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;