wpf - 菜单控件中的中心标题

标签 wpf menuitem vertical-alignment

如何在菜单控件中垂直居中标题?

这是我的尝试:

<MenuItem Header="File" StaysOpenOnClick="True" FontFamily="Arial" VerticalAlignment="Center">
                <MenuItem Header="Open" Click="Open_Click" IsEnabled="True"/>
            </MenuItem>
        </Menu>

但它与左上角对齐。

我做错了什么?

[编辑]

我的整个菜单现在看起来像这样:

<Menu Canvas.Left="0" Canvas.Top="0" Name="menu1" Margin="0,0,0,384">
        <MenuItem Header="File" StaysOpenOnClick="True" FontFamily="Arial" VerticalAlignment="Center">
            <MenuItem Click="Open_Click" IsEnabled="True">
                <MenuItem.Header>
                    <TextBlock Text="Open" VerticalAlignment="Center"/>
                </MenuItem.Header>
            </MenuItem>
        </MenuItem>
        </Menu>

标题文本"file"仍然没有垂直居中(这是我想要居中的)。 这段代码到底居中是什么?是“打开”文字吗?

[/编辑]

最佳答案

如果要格式化标题,您需要显式布局标题控件:

<MenuItem StaysOpenOnClick="True" FontFamily="Arial" VerticalAlignment="Center">
      <MenuItem Click="Open_Click" IsEnabled="True">
          <MenuItem.Header>
              <TextBlock Text="Open" VerticalAlignment="Center"/>
          </MenuItem.Header>
      </MenuItem>
  </Menu>

更新: 要格式化 MenuItem 在 Menu 中的位置,您需要覆盖 Menu 的 ItemsPanelTemplate。默认情况下,菜单使用垂直 WrapPanel,将项目对齐到顶部。将默认面板替换为您选择的面板(StackPanel、Grid、DockPanel 等),您就可以根据需要将菜单项居中。这是一个例子:

<Menu Canvas.Left="0" Canvas.Top="0" Name="menu1" Margin="0,0,0,384">
    <Menu.ItemsPanel>
        <ItemsPanelTemplate>
            <Grid/>
        </ItemsPanelTemplate>
    </Menu.ItemsPanel>
    <MenuItem Header="File" StaysOpenOnClick="True" FontFamily="Arial" VerticalAlignment="Center" >
        <MenuItem Header="Open" Click="Open_Click" IsEnabled="True"/>
    </MenuItem>
</Menu>

信息收集自this post在 MSDN 上。

关于wpf - 菜单控件中的中心标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10261595/

相关文章:

swift - 如何在 Swift 中对 UIBarButtonItem 应用垂直对齐

WPF DataGrid EnableColumnVirtualization ="True"在 DataGridCellsPanel.get_HasCorrectRealizedColumns() 处引发 NullReferenceException

c# - ASP.NET 突出显示选定的 MenuItem

google-apps-script - 将带有图标的项目添加到 Google Apps 脚本的菜单中

android - 在 Android 3.0 中,是否有一种标准方法可以在操作栏项目之间添加分隔符?

css - 如何对齐显示在顶部的不同字体大小的两个 p 元素?

c# - XAML:基于实际宽度的可见性在网格中表现得很奇怪

c# - mediended 事件的触发是否有任何默认时间间隔?

c# - 在特定阈值下调整 wpf 控件大小时出现意外裁剪

html - 垂直对齐不起作用