我试图了解如何在我的WPF XAML窗口中添加Menu
。我的窗口目前使用Grid
进行内容布局。我想在窗口顶部添加Menu
,类似于您在WinForm应用程序中通常看到的内容。
我查看了一些示例,但没有一个示例似乎解释了使用Grid
。我看到大多数示例都使用StackPanel
或DockPanel
等内容。
这是我当前的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>
答案 0 :(得分:4)
您可以将Menu
添加到主WPF布局Grid
,如以下示例所示:
<Menu Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="0">
<MenuItem Header="_File"/>
<MenuItem Header="_Edit"/>
<MenuItem Header="_Help"/>
</Menu>
您无需任何其他容器控件即可完成此任务。此处显示了使用此Menu
技术的实际WPF应用的屏幕截图(请注意应用窗口顶部的Menu
栏):http://examn8.com
希望这可能会有所帮助。
答案 1 :(得分:1)
这是一个非常常见的实现,我看到它看起来效果很好:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Menu Grid.Row="0">
<MenuItem Header="Load" IsEnabled="False"/>
<MenuItem Header="Save" IsEnabled="True"/>
<MenuItem Header="_Import/Export" IsEnabled="False">
<MenuItem Header="_Import"/>
<MenuItem Header="_Export"/>
</MenuItem>
</Menu>
<TreeView Grid.Row="1" x:Name="tests" Width="auto">
</TreeView>
</Grid>
如果有多列,则应在菜单上设置Grid.ColumnSpan属性。