2010-04-19 81 views
1

我有一个列表框,并试图选择代码中的项目。有时候一个项目会突出显示,那就是背景是蓝色的,但是不同的项目周围有一个方形的蓝色框(没有突出显示框的空心轮廓)。silverlight 3列表框项目高亮与所选

我是否正确地说一个是“突出显示”,一个是“选择”,我是否正确识别它们?

这是否应该发生......这是两件事情不同步?

感谢 科迪

回答

0

具有蓝色项目点亮背景是的SelectedItem。具有蓝色矩形的项目是当前认为它具有焦点的项目。

通常情况下,焦点矩形会将所选填充一起找到,因为所选项目通常会随着鼠标单击而改变,这也会将焦点带到同一元素。但是,例如,代码可能会改变所选项目,而ListBox仍然有焦点。在这种情况下,选定的高光将移动新选择的项目,但焦点矩形将保留在原来的位置。 (注意pendatic我正在描述什么看起来用户不知道如何事情实际上在引擎盖下)。

要了解正在发生的事情,请参见ListBox Styles and Templates文档中的ListBoxItem样式。

1

只是为了解决这个问题。 尽管列表框滚动查看器也会自动滚动列表框中的选定项目,但第一个项目将具有焦点,并且在您描述键盘交互时,将使用列表中的第一个项目而不是选定项目。

对我们来说,伦敦定盘

  this.MyListBox.UpdateLayout(); 
      this.MyListBox.Focus(); 
      this.MyListBox.SelectedItem = MyObject; 
      this.MyListBox.ScrollIntoView(this.MyListBox.SelectedItem); 

动作的顺序就显得十分重要。

这是使用ListBox内部滚动查看器。

相关问题