Изменение размера столбца DataGrid, изменение размера Grid ColumnDefinitions - PullRequest
3 голосов
/ 26 июля 2011

При изменении размера столбца в DataGrid (или любом другом элементе управления, имеющем столбцы) с ColumnSpan, охватывающим ColumnDefinition с Width = "*", при вложенности в ScrollViewer, будет происходить это странное поведение, когда ColumnDefinitions также будет изменен размер.

Ниже пример XAML показывает это поведение.

Кто-нибудь знает, что здесь происходит и почему это происходит? Определения ColumnDefinitions даже имеют фиксированную ширину, но все же они меняют размеры ...

<Window.Resources>
    <x:Array x:Key="PointList" Type="{x:Type Point}">
        <Point X="1" Y="4" />
        <Point X="2" Y="3" />
        <Point X="3" Y="2" />
        <Point X="4" Y="1" />
    </x:Array>
</Window.Resources>    

<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="100" />
            <ColumnDefinition Width="200" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>

        <Label Background="Red" Grid.Column="0" Content="Something 1" />
        <Label Background="Green" Grid.Column="1" Content="Something 2" />
        <Label Background="Blue" Grid.Column="2" Content="Something 3" />

        <DataGrid ItemsSource="{StaticResource PointList}" Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="3" />
    </Grid>
</ScrollViewer>

1 Ответ

0 голосов
/ 26 июля 2011

Я предполагаю, что это происходит потому, что во время измерения ScrollViewer сообщает о бесконечном пространстве в обоих измерениях (с настройками полосы прокрутки, которые есть).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...