2011-08-05 38 views
0

我有一個用戶有時看到一個DataGrid沒有展開以適合其空間:visually squeezed data grid http://www.varigence.com/images/compressedDataGrid.jpg爲什麼WPF DataGrid有時會保持水平收縮?

我正在尋求解決爲什麼發生這種事情的奧祕。通常,當網格第一次加載時,DataGrid會出現一段時間收縮,但隨後展開以填充適當的空間。我唯一的領導是,看到這個的用戶說,當他禁用Windows中的Aero時,它不會再現。

我已經添加了我在下面使用的XAML的(簡化)片段。

有沒有人對此有過想法?

感謝,

-Craig

<Grid 
    AllowDrop="True" 
    Background="White" 
    MinHeight="400" 
    MinWidth="1100" 
    MaxHeight="{Binding RelativeSource={RelativeSource AncestorType={x:Type Editors:DesignerEditor}}, Path=MainWindowScrollViewer.ViewportHeight, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" 
    MaxWidth="{Binding RelativeSource={RelativeSource AncestorType={x:Type Editors:DesignerEditor}}, Path=MainWindowScrollViewer.ViewportWidth, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" 
    > 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition MinWidth="350" Width="*"/> 
     <ColumnDefinition Width="Auto"/> 
     <ColumnDefinition MinWidth="250" Width="*"/> 
    </Grid.ColumnDefinitions> 
    <Border 
     Grid.Column="0" 
     BorderThickness="1" 
     BorderBrush="{StaticResource headerBackgroundBrush}" 
     CornerRadius="4" 
     HorizontalAlignment="Stretch" 
     Margin="10,10,0,10" 
     VerticalAlignment="Stretch" 
     > 
     <Grid 
      KeyboardNavigation.TabNavigation="Local" 
      > 
      <Grid.RowDefinitions> 
       <RowDefinition Height="Auto"/> 
       <RowDefinition Height="*"/> 
      </Grid.RowDefinitions> 
      <TextBlock 
       Grid.Row="0" 
       Text="Columns" 
       /> 
      <DataGrid:SelectingDataGrid 
       x:Name="columnDataGrid" 
       Grid.Row="1" 
       AutoGenerateColumns="False" 
       BorderBrush="{StaticResource excelBorderBrush}" 
       HorizontalAlignment="Left" 
       ItemsSource="{Binding ElementName=tableEditor, Path=SelectedContext.Columns.FilterCollection}" 
       RowDetailsTemplateSelector="{StaticResource columnDetailsTemplateSelector}" 
       RowDetailsVisibilityMode="VisibleWhenSelected" 
       SelectionMode="Extended" 
       SelectionUnit="FullRow" 
       > 
       <DataGrid:SelectingDataGrid.ItemContainerStyle> 
        <Style 
         TargetType="{x:Type DataGridRow}" 
         BasedOn="{StaticResource {x:Type DataGridRow}}" 
         > 
         <Setter 
          Property="IsSelected" 
          Value="{Binding IsSelected, Mode=TwoWay}" 
          /> 
        </Style> 
       </DataGrid:SelectingDataGrid.ItemContainerStyle> 
       <DataGrid:SelectingDataGrid.Columns> 
        ... 
       </DataGrid:SelectingDataGrid.Columns> 
      </DataGrid:SelectingDataGrid> 
     </Grid> 
    </Border> 
    <GridSplitter 
     Grid.Column="1"  
     Background="White" 
     IsTabStop="False" 
     ResizeBehavior="PreviousAndNext" 
     Width="20" 
     /> 

回答

2

我會假設你希望DataGrid,填補了左側立柱。如果更改

HorizontalAlignment="Left" 

HorizontalAlignment="Stretch" 

應該解決的問題。

+0

感謝您的回覆。我將讓我的用戶,誰在重現這個問題,試着用這個改變建立一個構建,看看它是否能解決這個問題。 – Craig