我是WPF的新手。我开发了一个WPF UserControl应用程序,其中有一个列表框。为了获得垂直滚动条,列表框的高度限制为400。在这个列表框中,我有超过100个项目。现在对于这些项目中的每一个,我必须显示一些工具提示,我需要在当前鼠标指针下的列表框中的项目索引。所以,为此我添加了一个MouseOver事件,如MouseEnter。使用鼠标指针位置获取WPF列表框中的listboxitem的索引(system.windows.control.listbox)
这里是我的XAML代码
<ListBox Name="AllProjects" TabIndex="0" ScrollViewer.CanContentScroll="True" ScrollViewer.VerticalScrollBarVisibility="Visible" Height="400" MouseEnter="AllProjects_MouseEnter"> </ListBox>
下面的代码段后端的C#代码
private void AllProjects_MouseEnter(object sender, MouseEventArgs e)
{
Point Position = e.GetPosition((IInputElement)sender);
}
所以,我收到鼠标指针WRT我目前的列表框,但真正的问题的立场将此位置转换为列表框中项目的索引。因为我正在使用system.windows.control.listbox而不是System.Windows.Forms.listbox,我没有IndexFromPoint方法。由于我的列表框可以垂直滚动,如果我尝试开发一个逻辑来获取索引,它会变得混乱。我只是想知道在这种情况下是否有任何简单的方法来获取listboxitem索引。 AllProjects是我的列表框的名称。提前致谢。
为什么你需要索引项?与显示工具提示有什么关系? – Ucodia 2013-03-22 10:46:32
@Ucodia:实际上每个列表框项目都需要不同的工具提示,并且我有一个存储项目名称和相关工具提示的字典。为此,我需要一个索引。 – 2013-03-22 10:54:26
好的。这个工具提示文本可以添加到列表中的项目的属性吗? – Ucodia 2013-03-22 11:08:55