2

私は を持ってListBoxPopupControlます。問題は、スクロール中に Popup が実際の最も広い要素に合わせてサイズ変更されることです。

このサイズ変更を回避し、リスト全体で最も幅の広い要素に自動的に調整するにはどうすればよいですか?

私はそれを入れようとしましたGridが、成功しませんでした。

4

4 に答える 4

7

これが解決策です:このプロパティを追加する

<ListBox VirtualizingStackPanel.IsVirtualizing="False"

Panel にすべての要素が含まれ、幅が最も広い要素に合わせて調整されるため、サイズ変更は停止します。Virtualizing Panel では、表示される項目の一部に過ぎず、ListBox は実際に表示される最も広い要素に合わせて幅を調整します。

欠点は、 Virtualizing Panelを使用しないことです (デフォルトでオンになっています)。

于 2009-07-17T07:53:43.797 に答える
1

仮想化を継続したい場合は、Popup.Widthを定数に設定できます。

もちろん、正しい定数を選択するには、それぞれの幅を計算 (または少なくとも推測) しListBoxItem、最大値を選択する必要があります。... 通常、コンテンツに基づいて大まかな推測を行うことはそれほど難しくありません。

于 2009-07-17T08:10:44.963 に答える
-1

ほとんどの WPFUIElementコントロールにはWidth" " に設定できるプロパティがあるAutoため、最も幅の広い要素と同じスペースを占有します。

于 2009-07-17T07:59:43.347 に答える