Windows 8 尝试获取水平偏移量时,始终返回0
我正在用C#/xaml为Windows8 Metro编写一个应用程序 我有一个Scrollviewer,希望获得水平偏移量 我试着这样做: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));
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);
}