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# 

你可能感兴趣的:(silverlight)