多くの列を持つDataGridがあります。
が欲しいです Width="Auto"
ウィンドウがすべての列よりも狭い場合、スクロールバーにすべてが表示されます。ウィンドウが広い場合は、列を空のスペースに広げて、デッドスペースがないようにします。
基本的に、列の最小幅をコンテンツまたはヘッダーに完全に合わせる必要があります。そして、ウィンドウが広い場合は大きく拡大します。
XAMLでDataGrid ColumnWidth="Auto"
を設定します
UserControlコンストラクターに追加
dataGrid.Loaded += (s, e) => { // Column widths
dataGrid.Columns.AsParallel().ForEach(column => {
column.MinWidth = column.ActualWidth;
column.Width = new DataGridLength(1, DataGridLengthUnitType.Star);
});
};
これをカスタムDataGridで使用すると、うまく機能します。
指定したとおりにWPF DataGrid
のすべての水平スペースを「埋める」には、これらのプロパティが[〜#〜] xaml [〜#〜]に設定されていることを確認します。
<DataGrid
HorizontalAlignment="Stretch"
HorizontalContentAlignment="Stretch"
ColumnWidth="*" />