获取菜单项,以便在单击时切换到不同的可见窗口

本文关键字:窗口 菜单项 单击 获取 | 更新日期: 2023-09-27 18:11:14

我在MS Visual Studio Community 2013中使用c#。我正在尝试设置一个菜单项,这样当点击它时,它会导致当前窗口隐藏自己,而另一个窗口出现在同一位置。

我有几本关于这个主题的书,我也花了很多时间在网上寻找答案。然而,当它应该是相对简单的事情时,我就是不知道如何设置它。

我以前用旧版本的c#做过,但在Visual Studio Community 2013中似乎不可能解决这个问题。

在这个阶段,我有一个菜单和菜单项设置类似如下的"非常简化":

<Menu HorizontalAlignment="Left" Height="21" Margin="10,10,0,0" VerticalAlignment="Top" Width="1264" Grid.ColumnSpan="2" FontWeight="Medium" FontSize="14">
    <MenuItem Header="Item Type" Margin="0" Width="100" Height="21" FontSize="11" Click="MenuItem_Click">
        <MenuItem Header="Item Action" HorizontalAlignment="Left" Width="185"/>
    </MenuItem>
</Menu>

当我在Visual Studio中设置菜单时,大多数(如果不是全部的话)都是自动生成的。

另外,如果我右键单击"项目操作"菜单项,将出现一个带有"查看代码"选项的弹出窗口。如果单击该选项,则在相应的*.cs文件中出现以下空函数:

private void MenuItem_Click(object sender, RoutedEventArgs e) { }

我意识到我可能需要向空方法添加代码来做我需要做的事情,但到目前为止我还没有找到如何做到这一点。

在菜单项的属性列表中也有一个'Command'属性。我也认为这可能在解决这个问题中起作用,但在现阶段我不知道如何。

请让我知道这需要如何设置,并提前感谢任何帮助。

另外,在stackoverflow的其他地方搜索后,我发现了隐藏/显示不同窗口的基础知识。我已经让它工作了,但这还不足以解决我的问题。

基本上,在我的真实菜单中,我有多个菜单项,每个菜单项的点击需要以不同的方式处理。因此,在MenuItem_Click函数中,我需要一种方法来识别实际单击了哪个MenuItem,以便我可以以正确的方式响应每个MenuItem的单击。

获取菜单项,以便在单击时切换到不同的可见窗口

您可以为每个菜单项添加click事件,并为每个方法添加代码。在此方法中,您可以添加以下代码

Window1.Visibility = Visibility.Hidden;
window2.Visibility = Visibility.Visible;

当你需要绑定MVVM模式中的方法时,可以使用Command属性