2
可以设置ListBox的偏移量吗?我能找到的所有东西都是滚动到一个元素,但我需要将列表框滚动到任何位置。WP7中的ListBox偏移量
作为替代方案,还有其他组件可以虚拟化它们的项目,并且我可以控制偏移量?
可以设置ListBox的偏移量吗?我能找到的所有东西都是滚动到一个元素,但我需要将列表框滚动到任何位置。WP7中的ListBox偏移量
作为替代方案,还有其他组件可以虚拟化它们的项目,并且我可以控制偏移量?
你可以得到ListBox的ScrollViewer中,并使用其ScrollToVerticalOffset-method.为了得到ScrollViewer中,比如,你可以挂接到ListBox的加载事件类似如下:
XAML:
<ListBox Loaded="HookScrollViewer">
代码 - 背后:
private void HookScrollViewer(object sender, RoutedEventArgs e)
{
var element = (FrameworkElement)sender;
var scrollViewer = ControlHelpers.FindChildOfType<ScrollViewer>(element);
if (scrollViewer == null)
return;
this.myScrollViewer = scrollViewer;
}
的ControlHerlpers.FindChildOfType法是实现这种方式:
public static T FindChildOfType<T>(DependencyObject root) where T : class
{
var queue = new Queue<DependencyObject>();
queue.Enqueue(root);
while (queue.Count > 0)
{
var current = queue.Dequeue();
for (int i = VisualTreeHelper.GetChildrenCount(current) - 1; 0 <= i; i--)
{
var child = VisualTreeHelper.GetChild(current, i);
var typedChild = child as T;
if (typedChild != null)
{
return typedChild;
}
queue.Enqueue(child);
}
}
return null;
}
现在您在myScrollViewer成员中拥有ListBox的ScrollViewer,您可以直接访问其方法。例如,滚动底部,你可以拨打:
this.myScrollViewer.ScrollToVerticalOffset(double.MaxValue);
如果我不设置很多时间确定补偿... – 2012-01-31 12:35:39
喜迈克尔,你可以尽可能帮助我,它工作正常?我在同一页上有两个列表框,并且数据混淆了,如何使用上面的代码获取第二个列表框? – Bohrend 2013-09-20 13:57:11
它的作品非常棒..... – URAndroid 2014-11-24 14:28:12