C# WPF DataGrid:设置列的宽度以动态占用所有空间
我有一个案例,我必须在Datagrid中显示数据。DataGrid的COL可能在2到20之间变化,我动态添加COL。我只想将cols的宽度设置为“*”,并使其利用屏幕上的所有可用空间。但在动态添加COL时,我无法在代码中为宽度指定“”。我试过自动,但没有区别。我们可以做些什么来实现这个目标?我的XML:C# WPF DataGrid:设置列的宽度以动态占用所有空间,c#,wpf,datagrid,column-width,C#,Wpf,Datagrid,Column Width,我有一个案例,我必须在Datagrid中显示数据。DataGrid的COL可能在2到20之间变化,我动态添加COL。我只想将cols的宽度设置为“*”,并使其利用屏幕上的所有可用空间。但在动态添加COL时,我无法在代码中为宽度指定“”。我试过自动,但没有区别。我们可以做些什么来实现这个目标?我的XML: <DataGrid AutoGenerateColumns="False" HorizontalAlignment="Stretch" Margin="20,0,0
<DataGrid AutoGenerateColumns="False" HorizontalAlignment="Stretch" Margin="20,0,0,0" x:Name="outputGrid" VerticalAlignment="Top" HorizontalScrollBarVisibility="Visible"
VerticalScrollBarVisibility="Visible" BorderBrush="#FFB7B39D" Background="LightYellow" RowBackground="LightGray" AlternatingRowBackground="#FFFFFFF5" BorderThickness="2"
CanUserReorderColumns="False" CanUserSortColumns="False" FontSize="13" MinWidth="675"
IsReadOnly="True" ColumnWidth="*"
ColumnHeaderStyle="{DynamicResource ColumnHeaderStyle}" ClipboardCopyMode="IncludeHeader" Foreground="Black" >
<DataGrid.RowHeaderStyle>
<Style TargetType="DataGridRowHeader">
<Setter Property="Content" Value="{Binding Title}" />
</Style>
</DataGrid.RowHeaderStyle>
</DataGrid>
如何确保它利用屏幕右侧的所有可用空间?
我在这个问题上搜索了很多,但找不到任何解决办法。非常感谢您的帮助
谢谢按以下方式设置列的宽度:
column.Width = new DataGridLength(1, DataGridLengthUnitType.Star);
当然,“1”定义了与其他列相比的相对宽度。就像在XAML
1*
中一样,哇!我意识到像这样设置星星。谢谢。它解决了我的问题。谢谢
column.Width = new DataGridLength(1, DataGridLengthUnitType.Star);