【发布时间】:2014-03-12 16:00:56
【问题描述】:
我注意到我的项目中的 DataGrid 列不再延伸到 DataGrid 宽度。我唯一做的就是更改了 Assmbly 的名称。 在 XAML 设计器中,它们被拉伸。
<DataGrid x:Name="dg" Grid.Row="4" RowHeaderWidth="0" AutoGenerateColumns="False"
HorizontalGridLinesBrush="AliceBlue" AlternationCount="2">
<DataGrid.Columns>
<DataGridTemplateColumn Header="File" IsReadOnly="True" Width="*" CanUserSort="True" SortMemberPath="File" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=FileName}" MouseDown="FileName_MouseDown" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
//other columns are similar
</DataGrid.Columns>
</DataGrid>
我尝试过的:
重建解决方案
删除“bin”文件夹并重建
我使用的旧版本没问题,并更改了程序集名称(这只是备份之间的区别),我比较了这两个版本之间的所有文件(在 codecompare 和 notepad++ 中,一一),所有文件都是一样,但一个伸展,另一个没有。两个版本都太旧了,回不去了。
仅使用 ColumnWidth="*" AutogenerateColumns="True"
创建新的 Datagrid
HorizontalContentAlignment="Stretch" 和 HorizontalAlignment="Stretch"
我满脑子都是想法。无论是否愚蠢,请提供任何想法。谢谢!
【问题讨论】:
-
您的示例代码有效。你确定?环顾 DataGrid 的容器。
-
将宽度设置为自动而不是 *
-
@NETscape 即使使用 DataGrid ColumnWidth="*" 也是一样的。 DataGridTemplateColumn 用它们的宽度覆盖它。我尝试添加项目,但还是一样。
-
@ChrisW。自动会拉伸到内容,如果第一列中的内容很宽,那么所有其他内容都会超出屏幕。此外,所有列都有不同的“x*”,具体取决于预期的数据宽度。
-
@Dipak 它的容器是网格行。我尝试移动到屏幕上的不同位置。在设计视图中正确显示,每列根据其宽度在 * 中拉伸
标签: c# wpf xaml datagrid wpfdatagrid