Silverlight中ScrollIntoView()无效解决方案

在 Silverlight 的 ListBox 中有一个方法 ScrollIntoView() 用来将对象定位到视图中,但是在实际编程的过程中发现 ListBox.ScrollIntoView() 并没有实现所要的功能,据说在 WCF 中可以。问题的起源见于 http://www.cnblogs.com/cyq1162/archive/2010/07/19/1780752.htm

查了一些资料,得到最终的解决方案为:在调用 ScrollIntoView() 之前使用 lbMsg.UpdateLayout() 更新布局可以解决这个问题。

可以参考以下代码:

1 string item = tbItem.Text;
2 if (item != "")
3 {
4     lbMsg.Items.Add(item);
5     lbMsg.SelectedIndex = lbMsg.Items.Count - 1;
6     lbMsg.UpdateLayout();
7     lbMsg.ScrollIntoView(lbMsg.SelectedItem);
8     tbItem.Text = "";
9 }

 

 参考资料:1. http://forums.silverlight.net/forums/p/19486/293798.aspx 

               2. http://connect.microsoft.com/VisualStudio/feedback/details/373113/scrollintoview-does-nothing-on-a-listbox-in-silverlight# 

posted @ 2010-07-20 21:17  zeyoo  阅读(2898)  评论(0编辑  收藏  举报