2011-07-26 271 views
3

當在DataGrid(或具有列的任何其他控件)中重新調整列的大小時,該列中的ColumnSpan跨越具有Width =「*」的ColumnDefinition,同時嵌套ScrollViewer會在ColumnDefinitions重新調整大小的時候出現這種奇怪的行爲。DataGrid列重新調整大小,重新調整大小Grid 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> 

回答

0

我會假設這是因爲測量的ScrollViewer在兩個維度上的報告無限空間(與您的滾動條設置即是)中。