使用网格将菜单添加到窗口时,我应该给菜单单独一行还是使用某种面板?

Rya*_*yan 2 c# wpf xaml

我试图了解如何在MenuWPF XAML窗口中添加。我的窗口当前使用Grid进行内容布局。我想Menu在窗口顶部添加一个,类似于您通常在WinForm应用程序中看到的样子。

我到处都是示例,但是这些示例似乎都没有解释a的用法Grid。我看到大多数示例都使用StackPanelDockPanel

这里是我当前Window,随着Grid。我应该只给Menu它自己一行,还是需要某种面板?

<Window>
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="1*" />
            <RowDefinition Height="3*" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="1*" />
            <ColumnDefinition Width="3*" />
        </Grid.ColumnDefinitions>
        <Menu>
            <MenuItem Header="File" />
        </Menu>
        <GroupBox Header="Seasons" Grid.Row="0" Grid.Column="0" Grid.RowSpan="2">
            <DataGrid Name="lstSeasons" AutoGenerateColumns="False" IsReadOnly="True" HeadersVisibility="Column" ItemsSource="{Binding SeasonsCollectionView}">
                <DataGrid.Columns>
                    <DataGridTextColumn Header="Name" Width="*" Binding="{Binding Name}" />
                    <DataGridTextColumn Header="Division" Width="*" Binding="{Binding Division}" />
                </DataGrid.Columns>
            </DataGrid>
        </GroupBox>
    </Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

Ale*_*ell 5

您可以添加Menu到WPF主布局Grid,如以下示例所示:

<Menu Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="0">
    <MenuItem Header="_File"/>
    <MenuItem Header="_Edit"/>
    <MenuItem Header="_Help"/>
</Menu>
Run Code Online (Sandbox Code Playgroud)

您不需要任何其他容器控件即可完成此任务。使用此Menu技术的实际WPF应用程序的屏幕截图显示在此处(请注意Menu应用程序窗口顶部的栏):http : //examn8.com

希望这会有所帮助。