0

基本的に私がやりたいことは、ユーザーが文字列値を入力できるようにし、入力したテキスト (または最初の LIKE 一致) に一致する項目までリスト ボックスをスクロールさせることです。

.ScrollIntoView() メソッドを使用する場合、問題は、アイテムが現在のスクロール位置よりもリスト内でさらに下にある場合、アイテムが表示領域の一番下に配置され、それが高い場合は一番上に配置されることです。現在のスクロール位置よりもリスト内。リストの一番上のアイテムにすることで、一貫性を持たせたいと思います(もちろん、アイテムの最後の「ページ」の1つであることが原因ではない場合を除きます)。

xが表示されている項目の数であるリストのさらに下にある項目を選択して、それを偽造しようとしました。これは下降時には機能しますが、上昇時には壊れます。また、リストの一番上に表示されているインデックスが現在どのインデックスであるかを判断できませんでした。

WinForms リスト ボックスには、探しているものとまったく同じ .TopIndex プロパティがありますが、WPF に相当するものを見つけることができませんでした。誰でもこれを達成する方法を知っていますか?

前もって感謝します!

4

1 に答える 1

2

ScrollIntoView を 2 回使用します。最初にリストの最後の項目を表示し、次に選択した項目を表示します。このようにして、常にボトムアップで機能します。各呼び出しの後に UpdateLayout を呼び出して、位置が正しいことを確認する必要があります。

于 2008-12-24T22:56:09.387 に答える