我注意到我的项目中的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 =“*”创建新的Datagrid AutogenerateColumns =“True”
HorizontalContentAlignment =“Stretch”和HorizontalAlignment =“Stretch”
我想到了一些想法。无论多么愚蠢,请提出任何想法。谢谢!
答案 0 :(得分:0)
我解决了它:
唯一的区别是我在初始化后获得了良好的版本MyWindow.Show();
。我尝试了多次评论和取消注释这一行,这是修复。
MyWindow只是xaml中定义的窗口名称,而show()不执行任何操作,因为无论如何窗口都是可见的。
如果其他人遇到此问题,请在InitializeComponent();
之后添加WindowName.Show()
除非你们其中一个人能想到原因,否则我认为这是一个错误。
答案 1 :(得分:0)
供参考:
当DataGrid在ScrollViewer内部时,显然会发生这种情况。因此,如this other answer中所述,如果不需要水平滚动条,则可以将其禁用:
<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled">
否则,您必须为DataGrid设置一个Width。您可以在链接的文章中按照sa_ddam213的答案创建一个虚拟元素:
<ScrollViewer HorizontalScrollBarVisibility="Auto">
<Grid x:Name="grid" MinWidth="200">
<DataGrid Width="{Binding ElementName=grid, Path=ActualWidth}">
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="Column A" Width="1*"/>
<DataGridCheckBoxColumn Header="Column B" Width="1*"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</ScrollViewer>