まず、最後の列の幅を見てください。「*」です。
問題を再現するための xaml は次のとおりです。
<Window x:Class="DataGridStaredColumnTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:System="clr-namespace:System;assembly=mscorlib" Title="MainWindow" Height="350" Width="525">
<Grid>
<ScrollViewer HorizontalScrollBarVisibility="Auto">
<Grid MinWidth="200" HorizontalAlignment="Stretch">
<DataGrid AutoGenerateColumns="False" HorizontalAlignment="Stretch">
<DataGrid.Columns>
<DataGridTemplateColumn Header="1" Width="Auto">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="Column1" Background="Green"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="2" Width="*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="Column2" Background="Yellow" HorizontalAlignment="Stretch"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
<DataGrid.Items>
<System:Int16>1</System:Int16>
<System:Int16>2</System:Int16>
<System:Int16>3</System:Int16>
</DataGrid.Items>
</DataGrid>
</Grid>
</ScrollViewer>
</Grid>
</Window>
HorizontalScrollbar が無効になっていると、すべてが正常に機能するため、スクロールビューアーには間違いなく問題があります。
問題に関するこの投稿を見つけました。それにもかかわらず、解決策には、ウィンドウが拡大された後、Border が増え続けるという別のバグが含まれています。
この余分な列を殺す方法を知っている人はいますか?