Procurando explicações sobre o comportamento WPF Grid ColumnSpan

Fiz uma pergunta emhttp: //social.msdn.microsoft.com/Forums/en-US/wpf/thread/5c7f5cdf-4351-4969-990f-29ce9ec84b87, mas ainda falta uma boa explicação para um comportamento estranh

Executar o XAML a seguir mostra que o TextBlock na coluna 0 tem largura maior que 100, mesmo que a coluna esteja definida como largura 100. Acho que a estranheza pode ter algo a ver com o envolvimento de um ScrollViewer, mas não sabe porque. Se eu definir um MaxWidth nas colunas, ele funcionará bem, mas a configuração Width nã

Por que a largura da coluna 0 não está sendo respeitada?Por que o dimensionamento da coluna se comporta de maneira diferente quando você remove o visualizador de rolagem?

Eu aprecio qualquer explicação! Este é um verdadeiro quebra-cabeça para mim.

<Window x:Class="WpfApplication2.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Width="300">
    <ScrollViewer HorizontalScrollBarVisibility="Auto" >
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="100" />
                <ColumnDefinition Width="100" />
                <ColumnDefinition />
            </Grid.ColumnDefinitions>
            <TextBlock x:Name="textBlock" Text="{Binding ElementName=textBlock, Path=ActualWidth}" />
            <TextBlock Text="column 1" Grid.Column="1" />
            <TextBlock Grid.Row="1" Grid.ColumnSpan="3" Text="text here that is wider than the first two columns combined" />
        </Grid>
    </ScrollViewer>
</Window>

questionAnswers(4)

yourAnswerToTheQuestion