0

スクロールビューアでコンテンツのスクロールを停止することはできますか? 例えば

<ScrollViewer>
    <Grid>
        <TextBlock /> <!-- I want not to scroll this item when rest is scrolling -->
        <!-- other controls -->
    </Grid>
</ScrollViewer>

scrollviewer の外に要素を配置することは考慮されません。

4

2 に答える 2

0

これがWPFを使用するデスクトップアプリである場合、おそらくそれを行うのに最適な場所は、ScrollViewerのArrangeOverrideメソッドをオーバーライドすることです。この場合、ScrollHoldOffsetのような独自のカスタム添付プロパティを作成し、それをTextBoxに割り当てることをお勧めします。次に、オーバーライドで、各コントロールをチェックして、このプロパティが設定されているかどうかを確認できます。その場合、スクロールが特定のしきい値( ScrollHoldOffset )を超えるまで、コントロールをスクロールするのではなく、所定の位置に保持する必要があります。

これがWindowsストアアプリの場合、ScrollViewerは封印されているため、継承したり、ArrangeOverrideメソッドをオーバーライドしたりすることはできないため、非常に困難になります。スクロール位置が変更されるたびに、スクロールを「元に戻す」ためのコードを記述できる場合があります。スクロールバーの位置変更イベントをサブスクライブする方法を示すこの例から始めます。次に、RenderTransformを変更して、スクロールをオフセットすることができます。

申し訳ありませんが、今日はこれをコーディングする時間がないので、練習ではなく理論的に行う必要があります。お役に立てば幸いです。

開発サポート、設計サポート、そして途中でのより素晴らしい良さ:http: //bit.ly/winappsupport

于 2013-02-18T18:48:13.810 に答える
0

私がこれを行う方法:

<ScrollViewer>
    <TextBlock /> 
    <ScrollViewer>
        <Grid>
            <!-- other controls -->
        </Grid>
    </ScrollViewer>
</ScrollViewer>
于 2013-02-18T16:28:19.520 に答える