1

UserControlsのリストボックスを持つWP7アプリを作成しています。各UserControlには、ItemsControlとButton(より多くの結果を取得するため)があります。ボタンをクリックすると、ItemsControlアイテムが5または10増加します。

最初または最後を除くすべてのユーザーコントロールの[その他]ボタンをクリックすると、リストボックスのスクロール可能な高さ(リストボックスの全高)が増加しますが、リストボックスの垂直オフセット(上からのスクロールバーの位置)は残ります。同じ。今私が直面している問題は、垂直オフセットが絶対的ではなく、スクロール可能な高さに対して相対的であるということです。そのため、それまでに表示されていたコンテンツは、ScollableHeightの新しい値に基づいて変更されます。

それらの間の関係を知りたいので、数学を実行して、VerticalOffset値を設定できます。

VerticalOffsetとScrollableHeightにいくつかの依存関係プロパティを追加しました。これにより、イベントのいずれかが変更されたときにイベントを取得できます。垂直オフセットを再調整するためにScrollIntoViewを使用しようとしています

提案や訂正は大歓迎です。

4

1 に答える 1

0

計算が見つかりません。しかし、実行できるのは、リストボックスを、itemsControlを内部に持つscrollviewerに置き換えることができることです。ただし、これの欠点は仮想化が無効になっていることです。そのため、これを確認する必要があります。

しかし、全体として、これはリストボックスでそのようなUserControlを使用する上で悪い経験を与えるでしょう。したがって、WP7ツールキットで提供されているテンプレート化されたリストボックスを使用することはオプションですが、ListBoxはマルチテンプレート化された仮想化用に最適化されていないため、少しハングします。そこで、条件から有効になる可能性のあるすべてのレイアウトが含まれるような方法でリストボックスアイテムテンプレートを作成する方法を示し始めました。

于 2012-04-23T15:33:43.390 に答える