如何使最后一个DataGrid的列占据整个左侧空间?

Pav*_*nin 15 wpf wpfdatagrid

第一!我知道这似乎是一种重复,但事实并非如此.

我有一个网格作为数据模板DataGrid.RowDetails.它有三列:两列Width="Auto"和三维列Width="*"

<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>
Run Code Online (Sandbox Code Playgroud)

如果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

Pav*_*nin 6

最后我找到了灵魂.

刚刚添加 ScrollViewer.HorizontalScrollBarVisibility="Disabled"

对于那些以Framework v4.0为目标的人
最近我们发现了一个用户拥有的错误而开发人员没有.该错误再次涉及DataGrid的宽度和对齐方式.好吧,可能这不是一个真正的错误,但我们有不同的控件行为.研究表明,安装.net framework 4.5安装程序时还更新了.net framework 4.0.此更新以某种方式改变了DataGrid的行为.(对于预期的一个)我们要求我们的用户安装框架4.5并且问题消失了.虽然我们的应用仍然针对.net 4.0