0

以下のコードに示すように、コンテキスト メニューには 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>

ありがとう

4

1 に答える 1

0

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>
于 2013-07-16T03:56:07.447 に答える