私はWPFの初心者です。リストボックスを持つ WPF UserControl アプリケーションを開発しました。リストボックスの高さは、垂直スクロール バーを取得するためだけに 400 に制限されています。このリストボックスには、100 を超える項目があります。これらのアイテムごとに、現在のマウスポインターの下にあるリストボックス内のアイテムのインデックスが必要なツールチップを表示する必要があります。そのため、MouseEnter のような MouseOver イベントを追加しました。
これが私の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.Forms.listboxではなくsystem.windows.control.listboxを使用しているため、 IndexFromPointメソッドがありません 。私のリストボックスは垂直にスクロールできるので、インデックスを取得するロジックを開発しようとすると、面倒になります。この場合、listboxitem インデックスを取得する簡単な方法があるかどうかを知りたかっただけです。AllProjectsは私のリストボックスの名前です。前もって感謝します。