ListBox не показывает элементы по горизонтали после использования темы - PullRequest
2 голосов
/ 22 ноября 2010

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

            <ListBox.ItemsPanel>

                <ItemsPanelTemplate>

                    <VirtualizingStackPanel Orientation="Horizontal" />

                    <WrapPanel></WrapPanel>

                </ItemsPanelTemplate>

            </ListBox.ItemsPanel>

, я могу отображать все свои элементы в списке по горизонтали, но всякий раз, когда я использую какую-либо тему, она начинает отображать элементы по вертикали (я использую MicrosoftExpressionLight.xaml в Application.xaml моего проекта)

Любое решение, даже если как остановить мой список (только этот) с использованием темы.

С уважением,

Ответы [ 2 ]

8 голосов
/ 16 мая 2011

У нас была та же проблема с ExpressionDark, и мы обнаружили, что это проблема в стиле.

Чтобы исправить это, просто измените ListBox ControlTemplate (строка 710 в ExpressionDark.xaml для нас):

<ControlTemplate TargetType="{x:Type ListBox}">
    <Grid>
        <Border x:Name="Border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="2" Background="{DynamicResource ControlBackgroundBrush}" />
        <ScrollViewer Margin="1" Style="{DynamicResource NuclearScrollViewer}" Focusable="false" Background="{x:Null}">
            <StackPanel Margin="1,1,1,1" IsItemsHost="true" />
        </ScrollViewer>
    </Grid>
    ...

Измените StackPanel на ItemsPresenter:

<ItemsPresenter Margin="1,1,1,1"/>

И вам должно быть хорошо идти.

1 голос
/ 22 ноября 2010

Полагаю, у темы есть настройка по умолчанию для ориентации, которая перезаписывает ваши настройки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...