Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF DataGrid:设置列的宽度以动态占用所有空间_C#_Wpf_Datagrid_Column Width - Fatal编程技术网

C# WPF DataGrid:设置列的宽度以动态占用所有空间

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中显示数据。DataGrid的COL可能在2到20之间变化,我动态添加COL。我只想将cols的宽度设置为“*”,并使其利用屏幕上的所有可用空间。但在动态添加COL时,我无法在代码中为宽度指定“”。我试过自动,但没有区别。我们可以做些什么来实现这个目标?我的XML:

           <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);