WPF MenuItem ширина дочерних элементов управления меньше, чем родительский элемент меню
Как показано в приведенном ниже коде, ContextMenu имеет четыре пункта меню один, два, три и четыре. Элемент MenuItem 3 содержит вложенные элементы в списке, и они представляют собой test1, test2 и test3. Ширина test1 test2 и test3 меньше, чем родительский элемент (т. Е. Пункт меню или подменю). Как сделать так, чтобы ширина растягивалась до ширины родителя.
<Window.Resources>
<ContextMenu x:Key="CustomContextMenu">
<MenuItem Header="One"></MenuItem>
<MenuItem Header="two"></MenuItem>
<MenuItem Header="three" Margin="0" x:Name="menu_three"
Padding="0"
Grid.IsSharedSizeScope="True" >
<StackPanel Background="Blue" Margin="0"
Width="{Binding Path=PlacementTarget.Parent.Width, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type MenuItem}}}">
<ListBox HorizontalAlignment="Stretch">
<ListBoxItem Content="test1"></ListBoxItem>
<ListBoxItem Content="test2"></ListBoxItem>
<ListBoxItem Content="test3"></ListBoxItem>
</ListBox>
</StackPanel>
</MenuItem>
<MenuItem Header="four"></MenuItem>
</ContextMenu>
</Window.Resources>
Спасибо
1 ответ
Удалите ListBox и используйте MenuItem, чтобы показать ваши пункты подменю
<ContextMenu>
<MenuItem Header="One"></MenuItem>
<MenuItem Header="two"></MenuItem>
<MenuItem Header="three" Margin="0" x:Name="menu_three" Padding="0" >
<MenuItem Header="test1"></MenuItem>
<MenuItem Header="test2"></MenuItem>
<MenuItem Header="test3"></MenuItem>
</MenuItem>
<MenuItem Header="four"></MenuItem>
</ContextMenu>