我的 WPF 中的 ContextMenu 有问题。菜单太宽了——它是我放在上面的项目的宽度,加上大约五百个像素。因此,当您打开菜单时,不是一个干净的选项或按钮列表,而是每一侧都有大量的灰色空间。我怎样才能解决这个问题?

编辑:这是我的菜单 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>

最佳答案

左侧为图标保留空间,右侧为输入手势文本(例如 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>

关于c# - WPF 中的 ContextMenu 太宽,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4271563/

10-17 02:26