0

Windows8 Metro 用の C#/xaml を使用してアプリを作成しています。

Scrollviewer があり、水平方向のオフセットを取得したいと考えています。

私はこれでそれを試しました:

private void ScrollViewer_ViewChanged_1(object sender, ScrollViewerViewChangedEventArgs e)
    {
        int i = Convert.ToInt32(GetValue(ScrollViewer.HorizontalOffsetProperty));
    }

しかし、i は常に 0 ですが、デバッガーでは 221.09 のオフセットが表示され、下にスクロールしました!

マイケル

4

1 に答える 1

1

下にスクロールした場合、水平方向にスクロールしない限り、水平方向のオフセットは変わりません。

おそらく、イベント ハンドラーは ScrollViewer 自体にはありません。その場合は、SV 自体で GetValue を呼び出す必要があります。

private void ScrollViewer_ViewChanged_1(object sender, ScrollViewerViewChangedEventArgs e)
{
    int i = Convert.ToInt32(myScrollViewer.GetValue(ScrollViewer.HorizontalOffsetProperty));
}

またはもっと良いのは、これを行うだけです:

private void ScrollViewer_ViewChanged_1(object sender, ScrollViewerViewChangedEventArgs e)
{
    int i = Convert.ToInt32(myScrollViewer.HorizontalOffset);
}
于 2012-08-23T17:46:44.680 に答える