WP8.1上的Flipview VirtualizingStackPanel方向更改

时间:2014-12-19 07:58:29

标签: windows-runtime windows-phone windows-phone-8.1 win-universal-app flipview

我想更改orientation属性,如下所示:

<Style x:Key="FlipViewStyleV" TargetType="FlipView">
    <Setter Property="ItemsPanel">
        <Setter.Value>
            <ItemsPanelTemplate>
                <VirtualizingStackPanel AreScrollSnapPointsRegular="True" Orientation="Vertical" />
            </ItemsPanelTemplate>
        </Setter.Value>
    </Setter>
</Style>

我希望在设备方向改变时让它工作,方向属性也应该跟随改变。但是当我在代码隐藏中添加一个按钮来将方向从垂直方向改为水平方式时,它是不行的,有人知道吗?

1 个答案:

答案 0 :(得分:2)

似乎更改Orientation的{​​{1}} FlipView属性因某些原因无效。所以这是另一种选择。

您需要复制ItemsPanel。一个人会实现FlipView Vertical,另一个会VirtualizingStackPanel Horizontal

在您的网页VirtualizingStackPanel中定义它们。

Resources

然后,您需要使用<Page.Resources> <ItemsPanelTemplate x:Key="HorizontalItemsPanel"> <VirtualizingStackPanel AreScrollSnapPointsRegular="True" Orientation="Horizontal" /> </ItemsPanelTemplate> <ItemsPanelTemplate x:Key="VerticalItemsPanel"> <VirtualizingStackPanel AreScrollSnapPointsRegular="True" Orientation="Vertical" /> </ItemsPanelTemplate> </Page.Resources> 来监控手机的方向更改。

SimpleOrientationSensor

订阅private SimpleOrientationSensor _orientationSensor = SimpleOrientationSensor.GetDefault(); 事件后,

OrientationChanged

在其回调中,只需隐藏并相应地显示 _orientationSensor.OrientationChanged += OrientationSensor_OrientationChanged;

FlipView