XAML ListView в Pivot позволяет прокручивать по диагонали

Я преобразовываю свое старое приложение для Windows Phone 7 в универсальное приложение для Windows 10, и изменение функциональности меня раздражает.

Мое старое приложение представляло собой всю фоновую логику, выталкивающую содержимое в пользовательский интерфейс (плохо для удобства сопровождения и т. д.), и я хочу начать разделять эти проблемы.
Раньше у меня был <StackPanel>, который был заполнен кучей <TextBlock>. Сейчас я работаю с <ObservableCollection> и <ListView>. Проблема в том, что <ListView> находится внутри <Pivot> и позволяет мне прокручивать по диагонали. Это очень сбивает с толку пользователя и выглядит как недосмотр.

XAML:

    <Pivot x:Name="PhoneUi" Title="Daily Bible Reading">
        <PivotItem Header="Today's Chapter">
            <ListView x:Name="todayschapter" ItemsSource="{Binding}">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Margin="-10 0 0 16">
                            <TextBlock Text="{Binding Reference}" FontSize="16" FontWeight="SemiBold" TextWrapping="Wrap"/>
                            <TextBlock Text="{Binding Text}" FontSize="24" TextWrapping="Wrap"/>
                        </StackPanel>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
        </PivotItem>
        <PivotItem Header="Reading Schedule">
            <ListView x:Name="readingschedule" ItemsSource="{Binding}">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Margin="-10 0 0 16">
                            <TextBlock Text="{Binding Date}" FontSize="16" FontWeight="SemiBold" TextWrapping="Wrap"/>
                            <TextBlock Text="{Binding Chapter}" FontSize="24" TextWrapping="Wrap"/>
                        </StackPanel>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
        </PivotItem>
    </Pivot>

Интересно, что у второго <ListView> такой проблемы нет. Его содержимое недостаточно длинное, чтобы включить вертикальную прокрутку. Однако первая <ListView> всегда достаточно длинная.

Просматривая документацию, для Сводка и ListView, я не видел никаких свойств, относящихся к направлению прокрутки или отключению.

Любые идеи о том, как разрешить только горизонтальную прокрутку на <Pivot> и вертикальную прокрутку на <ListView>?


person doubleJ    schedule 22.05.2015    source источник


Ответы (1)


С помощью поддержки в чате для универсального приложения , я обнаружил, что мне нужно добавить присоединенное свойство ScrollViewer.IsVerticalRailEnabled="True".

Мой код, теперь...

<ListView x:Name="todayschapter" ItemsSource="{Binding}" ScrollViewer.IsVerticalRailEnabled="True">

<Pivot> прокручивается по горизонтали, а <ListView> прокручивается по вертикали.

person doubleJ    schedule 22.05.2015