我有一个用户有时会看到一个DataGrid,它不会扩展以适应其空间:visually squeezed data grid http://www.varigence.com/images/compressedDataGrid.jpg。
我正在寻找解决为什么会发生这种情况的谜团。通常,当Grid首次加载时,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"
/>
答案 0 :(得分:2)
我假设您希望DataGrid
填满左栏。如果你改变了
HorizontalAlignment="Left"
到
HorizontalAlignment="Stretch"
它应该解决问题。