0

我正在使用 C#/xaml 为 Windows8 Metro 编写应用程序。

我有一个 Scrollviewer,想获得水平偏移量。

我用这个试过:

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

但我始终为 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 回答