Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在用户单击主菜单子项时引发单击事件_C#_Wpf - Fatal编程技术网

C# 如何在用户单击主菜单子项时引发单击事件

C# 如何在用户单击主菜单子项时引发单击事件,c#,wpf,C#,Wpf,我有一个带有文件菜单栏的WPF应用程序,其中包含以下菜单项: 打开 最近的 拯救 出口 使用最近打开的目录填充Recents菜单项 最近: -~\n文档 -~\Pictures 任何提示/建议,当用户单击最近的菜单项中的一个子项时,我应该订阅什么事件 非常感谢 它的外观表明您希望有一个附加有子菜单的菜单。在WPF中实现这一点的最佳方法是使用包含菜单项的菜单,这些菜单项可以包含按钮或更多菜单项 菜单将自动展开并显示其中的其他项,但是如果您想要一个按钮单击事件,您所要做的就是订阅事件处理程序,或者双

我有一个带有文件菜单栏的WPF应用程序,其中包含以下菜单项:

  • 打开
  • 最近的
  • 拯救
  • 出口
  • 使用最近打开的目录填充Recents菜单项

    最近: -~\n文档 -~\Pictures

    任何提示/建议,当用户单击最近的菜单项中的一个子项时,我应该订阅什么事件


    非常感谢

    它的外观表明您希望有一个附加有子菜单的菜单。在WPF中实现这一点的最佳方法是使用包含菜单项的菜单,这些菜单项可以包含按钮或更多菜单项


    菜单将自动展开并显示其中的其他项,但是如果您想要一个按钮单击事件,您所要做的就是订阅事件处理程序,或者双击设计器中的按钮。

    菜单项类有一个
    单击
    事件

    XAML:

    <Menu>
        <MenuItem Header="File">
            <MenuItem Header="Open"/>
            <MenuItem x:Name="recents" Header="Recents">
                <MenuItem Header="Documents" Click="MenuItem_Click_1" />
                <MenuItem Header="Pictures" />
            </MenuItem>
        </MenuItem>
    </Menu>
    
    public MainWindow()
    {
        InitializeComponent();
    
        MenuItem mi = new MenuItem() { Header = "test" };
        mi.Click += MenuItem_Click_1;
        recents.Items.Add(mi);
    }
    
    private void MenuItem_Click_1(object sender, RoutedEventArgs e)
    {
        MessageBox.Show("clicked!");
    }
    

    “对于所有不喜欢这篇文章的人,至少告诉他为什么……他不能改变,除非他被告知他做错了什么。”-我也支持这一点。但在发布之前,我也要求您阅读“如何提问”部分。@没有人是真的,我只是感觉很糟糕,这个人可能被难住了,可能是在寻找错误的地方,所以他来这里寻求帮助。@Enigmativity为什么您删除了我给他的关于确保他的问题清楚且尚未回答的便条。我想他会从中受益的。不管怎样,这都是你的决定。@SeanMitchell-不要在你的回答中放这些信息-你应该把它们作为对他的问题的评论。@Enigmativity如果我有50个名声,我会的。英雄联盟