WPF中的ContextMenu太宽泛了

时间:2010-11-24 21:08:06

标签: c# wpf .net-4.0

我在WPF中遇到了ContextMenu的问题。菜单太宽了 - 这是我放在它上面的物品的宽度,再加上大约五百个像素。所以当你打开菜单时,不是一个干净的选项或按钮列表,每边都有大量的greyspace。我该如何解决这个问题?

编辑:这是菜单的XAML:

<ContextMenu Padding="0">
    <Button Content="Close Tab" Height="23" Name="closetabbutton" Width="75" Margin="0,0,0,0" Click="closetabbutton_Click" />
    <TextBox Height="23" Name="renamebox" Width="75" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ClipToBounds="True" TextChanged="renamebox_TextChanged" />
    <Button Content="Close Menu" Height="23" Name="closemenubutton" Width="75" Margin="0,0,0,0" Click="closemenubutton_Click" />
</ContextMenu>

1 个答案:

答案 0 :(得分:2)

该空间保留为左侧的图标,右侧输入手势文本(例如Ctrl + C)。这是设计的。

如果您想更改此设置,则必须创建自己的ContextMenu样式。以下是如何执行此操作的示例:

http://www.dev102.com/2008/06/20/how-to-create-a-wpf-custom-context-menu/

<强>更新

除了我的问题评论之外,MenuItems通常会在您使用按钮的地方使用。例如:

<Grid.ContextMenu>
    <ContextMenu>
        <MenuItem Name="mnuClose" Header="Close tab" InputGestureText="Ctrl+C" />
        <MenuItem Name="mnuRename">
            <MenuItem.Header>
                <TextBox Name="txtRename" Width="100" />
            </MenuItem.Header>
        </MenuItem>
    </ContextMenu>
</Grid.ContextMenu>