以下のコードに示すように、コンテキスト メニューには 1、2、3、4 の 4 つのメニュー項目があります。MenuItem 3 には、リスト ボックスに埋め込まれたサブ項目があり、それらは test1、test2、および test3 です。test1、test2 および test3 の幅は、親アイテム (つまり、menuitem または submenuitem) よりも小さいです。親の幅を取るように幅を伸ばす方法。
<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>
ありがとう