5

質問:WindowsPhoneでScrollViewerのスクロールイベントを取得する

私はそのようなスクロールビューアを持っています:

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
    <ScrollViewer x:Name="MyScroller">
        <StackPanel>
            <!-- ... -->
        </StackPanel>
    </ScrollViewer>
</Grid>

MyScrollerのスクロールが発生したときのイベントが必要です。

// MyScroller.Scroll += // <-- "Scroll" event does not exist on ScrollViewer
MyScroller.MouseWheel += MyScroller_MouseWheel; // Does not fire on scroll
MyScroller.ManipulationDelta += MyScroller_ManipulationDelta; // Fires for pinch-zoom only
4

3 に答える 3

12

ScrollViewerがスクロールされるとMouseMoveが起動します。

public MainPage()
{
    InitializeComponent();

    MyScroller.MouseMove += MyScroller_MouseMove;
}

void MyScroller_MouseMove(object sender, MouseEventArgs e)
{
    throw new NotImplementedException();// This will fire
}

これは「マウス」イベントとして名前が付けられており、電話にマウスがないため、直感的ではありません。ただし、タッチポイントはScrollViewerコンテナに対して移動します。これにより、スクロールを処理できます。

于 2011-03-10T19:27:28.077 に答える
1

それほど単純ではありませんが、この質問で書かれたスクロール検出メカニズムがいくつかあります。

最後のアイテムに到達すると、WP7はリストボックスを自動拡張します

基本的に、OnListVerticalOffsetChangedが呼び出されて使用される方法を見てください。

于 2011-03-10T20:18:27.800 に答える
0

Mangoを使用すると、このサンプルプロジェクトで説明されているように、「ScrollStates」の視覚的な状態が変化するのを監視できます。

于 2012-02-17T16:06:33.630 に答える