【问题标题】:Trying to get HorizontalOffset, always returns 0试图获取 HorizontalOffset,总是返回 0
【发布时间】:2012-08-19 05:48:03
【问题描述】:
我正在使用 C#/xaml 为 Windows8 Metro 编写应用程序。
我有一个 Scrollviewer,想要获取水平偏移量。
我试过了:
private void ScrollViewer_ViewChanged_1(object sender, ScrollViewerViewChangedEventArgs e)
{
int i = Convert.ToInt32(GetValue(ScrollViewer.HorizontalOffsetProperty));
}
但 i 始终为 0,尽管在调试器中显示偏移量为 221.09,我向下滚动!
迈克尔
【问题讨论】:
标签:
windows-8
windows-runtime
scroll
winrt-xaml
dependency-properties
【解决方案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);
}