pax*_*blo 45 wpf xaml visual-studio-2008
我的XAML文件中有以下(简化的)部分:
<Menu Width="Auto" Height="20" Background="#FFA9D1F4" DockPanel.Dock="Top">
<MenuItem Header="File">
<MenuItem Header="Exit"/>
</MenuItem>
<MenuItem Header="Edit">
<MenuItem Header="Cut"/>
</MenuItem>
<MenuItem Header="Help">
<MenuItem Header="About"/>
</MenuItem>
</Menu>
Run Code Online (Sandbox Code Playgroud)
它导致:
+-------------------------------------------+
| File Edit Help |
+-------------------------------------------+
| |
Run Code Online (Sandbox Code Playgroud)
如果我想要Help右侧的菜单项,我需要做什么:
+-------------------------------------------+
| File Edit Help |
+-------------------------------------------+
| |
Run Code Online (Sandbox Code Playgroud)
Leo*_*rke 74
Alng相同的原则,这次你不需要网格,因此不需要知道项目的数量.除了帮助之外,将所有项目分配到左侧:)
<Menu Height="20" Background="#FFA9D1F4">
<Menu.ItemsPanel>
<ItemsPanelTemplate>
<DockPanel HorizontalAlignment="Stretch"/>
</ItemsPanelTemplate>
</Menu.ItemsPanel>
<MenuItem Header="File">
<MenuItem Header="Exit"/>
</MenuItem>
<MenuItem Header="Edit">
<MenuItem Header="Cut"/>
</MenuItem>
<MenuItem Header="Help" HorizontalAlignment="Right">
<MenuItem Header="About"/>
</MenuItem>
</Menu>
Run Code Online (Sandbox Code Playgroud)
另一个可能的答案是,如果你总是知道有多少菜单项(这使得这个答案很脆弱),就是将Menu.ItemsPanel定义为网格,将Menu设置为Stretch,适当设置Grid.ColumnDefinitions,设置MenuItems到相应的Grid.Column,并将最后一个菜单项的HorizontalAlignment设置为Right.
<Menu Height="20" Background="#FFA9D1F4" DockPanel.Dock="Top" HorizontalAlignment="Stretch">
<Menu.ItemsPanel>
<ItemsPanelTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
</Grid>
</ItemsPanelTemplate>
</Menu.ItemsPanel>
<MenuItem Header="File" Grid.Column="0">
<MenuItem Header="Exit"/>
</MenuItem>
<MenuItem Header="Edit" Grid.Column="1">
<MenuItem Header="Cut"/>
</MenuItem>
<MenuItem Header="Help" Grid.Column="2" HorizontalAlignment="Right">
<MenuItem Header="About"/>
</MenuItem>
</Menu>
Run Code Online (Sandbox Code Playgroud)
更改原始答案,因为它是(使用 HorizontalAlignment="Stretch")编辑菜单将一直延伸到菜单栏到帮助菜单。
还结合了 Rokke 的子菜单对齐建议......
<Menu Height="20" Background="#FFA9D1F4">
<Menu.ItemsPanel>
<ItemsPanelTemplate>
<DockPanel/>
</ItemsPanelTemplate>
</Menu.ItemsPanel>
<MenuItem Header="File">
<MenuItem Header="Exit"/>
</MenuItem>
<MenuItem Header="Edit">
<MenuItem Header="Cut"/>
</MenuItem>
<MenuItem Header="_Help" HorizontalAlignment="Right" FlowDirection="RightToLeft">
<MenuItem Header="About..." FlowDirection="LeftToRight"/>
</MenuItem>
</Menu>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21897 次 |
| 最近记录: |