ScrollViewer прокручивает назад при отпускании - PullRequest
0 голосов
/ 30 ноября 2011

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

Я также пытался поместить весь ItemsControl в ScrollViewer - то же самое поведение.

Без ScrollViewer ItemsControl вообще не прокручивается.

Я установил точки останова наManipulationCompleted ItemsPresenter, ItemsControl и ScrollViewer - во всех них прокрутка отображается в правильном положении, где я ее оставил, но потом куда-то прокручивается назад.

Вот моя разметка xaml:

<Grid x:Name="LayoutRoot">
    <ItemsControl Name="lbDeployments" 
                    ItemsSource="{Binding Path=Deployments}"
                    ItemTemplate="{StaticResource DeploymentItem}" >
        <ItemsControl.Template>
            <ControlTemplate TargetType="ItemsControl">
                <Grid>
                    <ScrollViewer>                    
                        <ItemsPresenter />
                    </ScrollViewer>
                </Grid>
            </ControlTemplate>
        </ItemsControl.Template>
    </ItemsControl>

</Grid>

Пожалуйстапомощь

Ответы [ 2 ]

1 голос
/ 30 ноября 2011

Попробуйте добавить RowDefinitions:

<Grid x:Name="LayoutRoot">
    <Grid.RowDefinitions>
        <RowDefinition Height="*" />
    </Grid>

    ... 
</Grid>
1 голос
/ 30 ноября 2011

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

Вам нужно будет установить высоту ScrollViewer или сетку, в которой он содержится, для правильной работы scrollign.

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

...