我是WPF的新手。我开发了一个 WPF UserControl 应用程序,其中有一个列表框。列表框的高度限制为 400 只是为了获得垂直滚动条。在这个列表框中,我有 100 多个项目。现在对于这些项目中的每一个,我必须显示一些工具提示,我需要在当前鼠标指针下的列表框中显示项目的索引。因此,为此我添加了一个 MouseOver 事件,例如 MouseEnter。
这是我的 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);
}
因此,我得到了当前列表框中鼠标指针的位置,但真正的问题是将此位置转换为列表框中项目的索引。因为我使用的是system.windows.control.listbox而不是System.Windows.Forms.listbox,所以我没有 IndexFromPoint方法。由于我的列表框可以垂直滚动,如果我尝试开发一种逻辑来获取索引,它会变得混乱。我只是想知道在这种情况下是否有任何简单的方法来获取 listboxitem 索引。AllProjects是我的列表框的名称。提前致谢。