我正在使用C#/ xaml为Windows8 Metro编写应用程序。
我有一个Scrollviewer,想要获得水平偏移。
我试着用这个:
private void ScrollViewer_ViewChanged_1(object sender, ScrollViewerViewChangedEventArgs e)
{
int i = Convert.ToInt32(GetValue(ScrollViewer.HorizontalOffsetProperty));
}
但我总是0,在调试器中它通过它向我显示偏移量为221.09并向下滚动!
迈克尔
答案 0 :(得分: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);
}