导航

WinRT下修正ScrollViewer自动回滚到0偏移位置的问题

Posted on 2013-02-18 10:51  Bullatus  阅读(309)  评论(0)    收藏  举报

在做应用时使用了一个类似以下xaml的控件结构

<FlipView>
    <FlipView.Resources>
        <Style TargetType="FlipViewItem">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="FlipViewItem">
                        <ScrollViewer HorizontalAlignment="Center" VerticalAlignment="Center"
                              HorizontalContentAlignment="Center" VerticalContentAlignment="Center" >
                                <ContentPresenter />
                          </ScrollViewer>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </FlipView.Resources>
    <Rectangle Width="1366" Height="768" >
        <Rectangle.Fill>
            <LinearGradientBrush EndPoint="0,0" StartPoint="1,0">
                <GradientStop Color="White"/>
                <GradientStop Color="Black" Offset="1"/>
                <GradientStop Color="White" Offset="0.487"/>
                <GradientStop Color="Black" Offset="0.44"/>
            </LinearGradientBrush>
        </Rectangle.Fill>
    </Rectangle>
</FlipView>

然后发现在放大ScrollViewer内容,使其宽大于ScrollViewer时(也就是可以横向滚动时),横向移动后,内容会被自动移动回0偏移的位置。

修正的方法也很简单,就是设置其HorizontalScrollBarVisibility的值为Auto或Visible