WPF Menu: упаковка предметов - PullRequest
1 голос
/ 12 марта 2011

Я работаю над элементом управления WPF, который помещается внутри TabControl в другом окне, и у меня есть меню, которое простирается через верх моего пользовательского элемента управления с буквами алфавита как таковыми (для целей индексации):

<UserControl x:Class="thispageclass"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         mc:Ignorable="d">
    <Grid>
        <StackPanel Orientation="Vertical">
            <Menu Name="mnu">
                <MenuItem Header="A" />
                <MenuItem Header="B" />
                <MenuItem Header="C" />
                ...
                <MenuItem Header="Y" />
                <MenuItem Header="Z" />
            </Menu>

            [other elements]
        </StackPanel>
    </Grid>
</UserControl>

Если присутствуют все буквы, меню становится шире, чем окно, поэтому вы не можете видеть последние несколько пунктов, не увеличивая окно.Кажется, что это должно быть тривиально, чтобы обернуть меню, если окно слишком маленькое, но я не могу понять, как.

Ответы [ 2 ]

3 голосов
/ 12 марта 2011

Просто переопределите ItemsPanel вашего меню на WrapPanel

Sample

    <Menu.ItemsPanel>
        <ItemsPanelTemplate>
            <WrapPanel/>
        </ItemsPanelTemplate>
    </Menu.ItemsPanel>
0 голосов
/ 10 мая 2011

Я создал свой собственный минимальный сэмпл, который сработал, что привело меня к выводу, что мои собственные стили портят мое меню.

...