第一的!我知道这似乎是一种欺骗,但事实并非如此。
我有一个网格作为DataGrid.RowDetails
. 它有三列:两列 withWidth="Auto"
和 3d withWidth="*"
<DataTemplate x:Key="NotEmptyDistributionsTemplateKey">
<DataGrid ItemsSource="{Binding SoftwareVersionDistributions}"
CanUserAddRows="False"
CanUserDeleteRows="False"
CanUserReorderColumns="False"
CanUserResizeColumns="True"
CanUserSortColumns="False"
IsReadOnly="True"
CanUserResizeRows="False"
AutoGenerateColumns="False"
RowHeaderWidth="0"
Margin="20,5"
HorizontalAlignment="Stretch">
<DataGrid.Columns>
<DataGridTextColumn
Header="Architecture"
Binding="{Binding SoftwareArchitecture.Name, TargetNullValue=Все, FallbackValue=Все}"
Width="Auto"/>
<DataGridTextColumn
Header="Language"
Binding="{Binding SysCodepage.Title, TargetNullValue=Все, FallbackValue=Все}"
Width="Auto"/>
<DataGridHyperlinkColumn
Header="Link"
Binding="{Binding DownloadLink}"
Width="*"
CanUserResize="False"/>
</DataGrid.Columns>
</DataGrid>
</DataTemplate>
如果 Grid 嵌套在单元格中,则此模板正好显示 3 列。但是当它被用作RowDetaislTemplate
第 4 个空列时出现。这让我很生气。
有人知道为什么会发生这种情况吗?
更新 1。它的外观:
更新 2。
最后我找到了灵魂。刚刚添加ScrollViewer.HorizontalScrollBarVisibility="Disabled"
现在好啦:
但我无法理解这种奇怪的行为。
更新 3(可能对某人有帮助)
最近我们发现了一个我们的用户有而开发人员没有的错误。该错误再次与 DataGrid 的宽度和对齐方式有关。好吧,这可能不是真正的错误,但我们有不同的控件行为。
研究表明,在安装 .net framework 4.5 时,安装程序还更新了 .net framework 4.0。此更新以某种方式改变了 DataGrid 的行为。(对预期的)
我们要求我们的用户安装框架 4.5 并且问题消失了。虽然我们的应用程序仍然以 .net 4.0 为目标