2010-11-24 22 views
3

У меня проблема с моим ContextMenu в WPF. Меню слишком широкое - это ширина элементов, которые я надел, плюс около пятидесяти ста сотен пикселей. Поэтому, когда вы открываете меню, вместо того, чтобы быть чистым списком опций или кнопок, на каждой стороне есть множество greyspace. Как я могу это исправить?ContextMenu в WPF слишком широк

Edit: Вот моя 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> 
+0

Код пожалуйста .... – 2010-11-24 21:15:17

+0

Это кажется необычным способом использования контекстного меню с точки зрения удобства использования. Обычно вы добавляете MenuItems в ContextMenu, а не в кнопки. – 2010-11-24 21:55:36

ответ

2

пространство зарезервировано для значков в левой части экрана и введите текст жест (например, Ctrl + C) справа. Это по дизайну.

Если вы хотите изменить это, вам придется создать свой собственный стиль ContextMenu. Вот пример того, как сделать это:

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

Update

В дополнение к моему вопросу Комментарий, 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> 
Смежные вопросы