2

さまざまな高さの行を持つグリッドがあります。グリッドを下にスクロールすると、スクロールバーのつまみの高さが変わることに気づきました。

いくつかの調査の結果、これはUI仮想化が原因であることがわかりました。グリッドはすべてのアイテムを作成しないため、グリッドの全高がわからないため、代わりに、グリッドの平均行高を計算して全高を決定します。作成した行を作成し、これに行数を掛けます。これにより、仮想化によって新しいアイテムが作成され、表示されなくなったアイテムが破棄されるため、スクロール中にサムのサイズが変更されます。これにより、グリッドはグリッドの合計サイズが変更されたと見なします。

私の質問:自分のヒューリスティックを使用してスクロールサムサイズを自分で設定する方法はありますか?できれば、邪魔にならない方法で、コントロールを再テンプレート化する必要がないようにします。仮想化を無効にすることはできません。

注:DevExpress DataGridを使用していますが、この動作はWPFDataGridでも発生します。

4

1 に答える 1

1

テンプレートを使用してスクロールバーのスタイルを設定することを検討しましたか?

リンクで、親指のスタイルを具体的に設定できることに注意してください...
コメントに関しては、DataGrid内のアイテムの数にバインドして、その数に基づいて親指のサイズを動的にする計算を実行することもできます。アイテムの。

于 2012-10-31T14:52:42.017 に答える