さまざまな高さの行を持つグリッドがあります。グリッドを下にスクロールすると、スクロールバーのつまみの高さが変わることに気づきました。
いくつかの調査の結果、これはUI仮想化が原因であることがわかりました。グリッドはすべてのアイテムを作成しないため、グリッドの全高がわからないため、代わりに、グリッドの平均行高を計算して全高を決定します。作成した行を作成し、これに行数を掛けます。これにより、仮想化によって新しいアイテムが作成され、表示されなくなったアイテムが破棄されるため、スクロール中にサムのサイズが変更されます。これにより、グリッドはグリッドの合計サイズが変更されたと見なします。
私の質問:自分のヒューリスティックを使用してスクロールサムサイズを自分で設定する方法はありますか?できれば、邪魔にならない方法で、コントロールを再テンプレート化する必要がないようにします。仮想化を無効にすることはできません。
注:DevExpress DataGridを使用していますが、この動作はWPFDataGridでも発生します。