XAML 居中菜单项

XAML Centering menuitem

所以我制作了一个宽度为 55 的简单菜单 我尝试使我的标题 ("FILE") 在按钮本身内居中,同时仍位于 window 的左侧。

目前基本代码看起来像这样

<Menu Height="25" VerticalAlignment="Top" Width="800" Margin="0">
<MenuItem Header="File" Margin="0" Height="25" Width="55" HorizontalContentAlignment="Center">
    <MenuItem Header="Login"/>
    <MenuItem Header="New User"/>
    ...
</MenuItem> </Menu>

我已经尝试过

这样的代码
        <Menu.ItemsPanel>
            <ItemsPanelTemplate>
                <Grid/>
            </ItemsPanelTemplate>
        </Menu.ItemsPanel>

要删除网格但没有成功,只是实际菜单居中,而不是按钮中的文本 "FILE"。

下面是 "FILE" 目前的样子,我试着让它在蓝色区域内居中。

http://i.stack.imgur.com/KRXw2.png (无法post实际图像我没有足够的代表。)

谢谢。

您可以通过将 MenuItem's header 模板设置为 TextBlock 来实现此目的,其中 TextBlockMenuItem 的宽度相同本身。此外,您需要添加一个 Margin 来补偿默认的 MenuItem 模板。

<Menu Height="25" VerticalAlignment="Top" Width="800" Margin="0">
    <MenuItem Margin="0" Height="25" Width="55" HorizontalContentAlignment="Center">
        <MenuItem.Header>
            <TextBlock Text="File" HorizontalAlignment="Stretch" Margin="-7" Width="55" TextAlignment="Center"/>
        </MenuItem.Header>
        <MenuItem Header="Login"/>
        <MenuItem Header="New User"/>
    </MenuItem>
</Menu>