Windows Phone 8.1 Scrollviewer

Я создаю приложение для Windows Phone 8.1, и мое средство просмотра прокрутки продолжает возвращаться к началу после того, как вы отпускаете прокрутку. Как будто я перетаскиваю его вниз, а когда отпускаю, он возвращается наверх.

<ScrollViewer Margin="10,0,10,-1024" Height="1124" VerticalAlignment="Top" 
  VerticalScrollBarVisibility="Visible" VerticalScrollMode="Enabled"
  AllowDrop="False" BringIntoViewOnFocusChange="True"
  HorizontalScrollMode="Disabled" IsHoldingEnabled="True" >

    <Grid Grid.Row="1" x:Name="ContentRoot" Height="468" Width="386" >

        <TextBlock HorizontalAlignment="Left" Margin="64,326,0,0"
          TextWrapping="Wrap" VerticalAlignment="Top" Foreground="White"
          FontSize="16" Width="307" Height="68" >

            <Run Foreground="#FFFF6767" Text="Single Phase "/>
            <Run Foreground="#FFFF6767" Text="Amperes "/>
            <Run Text="= "/>
            <Run Text="(746 x Horsepower) / (Volts x Efficiency x Power Factor"/>
            <Run Text=")"/>

        </TextBlock>

    </Grid>

</ScrollViewer>

person Volatile_Potato    schedule 05.10.2014    source источник


Ответы (1)


ScrollViewer предназначен для обработки содержимого, которое больше, чем окружающий контейнер. Поэтому обычно высота вашего ScrollViewer меньше, чем его содержимое.

Просто отрегулируйте высоту вашего ScrollViewer и содержимого, например:

<ScrollViewer Height="500" VerticalAlignment="Top" VerticalScrollBarVisibility="Visible" VerticalScrollMode="Enabled" AllowDrop="False" BringIntoViewOnFocusChange="True" HorizontalScrollMode="Disabled" IsHoldingEnabled="True" >
<Grid Grid.Row="1" x:Name="ContentRoot" Height="800" Width="386" >
[..]

</Grid>
</ScrollViewer>

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

person Fred    schedule 06.10.2014