Windows 8 尝试获取水平偏移量时,始终返回0

Windows 8 尝试获取水平偏移量时,始终返回0,windows-8,windows-runtime,scroll,winrt-xaml,dependency-properties,Windows 8,Windows Runtime,Scroll,Winrt Xaml,Dependency Properties,我正在用C#/xaml为Windows8 Metro编写一个应用程序 我有一个Scrollviewer,希望获得水平偏移量 我试着这样做: private void ScrollViewer_ViewChanged_1(object sender, ScrollViewerViewChangedEventArgs e) { int i = Convert.ToInt32(GetValue(ScrollViewer.HorizontalOffsetProperty));

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

我有一个Scrollviewer,希望获得水平偏移量

我试着这样做:

private void ScrollViewer_ViewChanged_1(object sender, ScrollViewerViewChangedEventArgs e)
    {
        int i = Convert.ToInt32(GetValue(ScrollViewer.HorizontalOffsetProperty));
    }
但我始终是0,尽管在调试器中它显示了221.09的偏移量,我向下滚动


Michael

如果向下滚动-除非水平滚动,否则水平偏移量不会改变

可能您的事件处理程序不在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);
}