我有一个模拟带有其他功能的打印预览的网格
<Grid Name="grdReport_RTF" Visibility="Visible">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="5" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<RichTextBox x:Name="rtbReport" Grid.Row="0" Margin="10" BorderBrush="Gray" Background="White" Foreground="Black" IsEnabled="True" Padding="10" Style="{DynamicResource rtbStyleDocLocal}" />
<GridSplitter Grid.Row="1" Height="5" HorizontalAlignment="Stretch" />
<StackPanel Grid.Row="2" Orientation="Horizontal" Margin="10" >
...
</StackPanel>
<TabControl Grid.Row="3" Background="Transparent" BorderBrush="Gainsboro" BorderThickness="3" Margin="10">
<TabItem Name="tbiReports" BorderBrush="Red" Background="Transparent" >
<DataGrid Name="dtgReports" Background="Green" Height="100" Margin="10" />
</TabItem>
<TabItem Name="tbiLastReport" BorderBrush="Red" Background="Transparent">
<DataGrid Name="dtgLastReport" Background="Green" Height="100" Margin="10" />
</TabItem>
</TabControl>
</Grid>
所以无论我尝试什么,gridspliter都不显示也不起作用。
我已经取消了以下所有代码,并提供了here提供的代码,而且它一直躲藏起来
我试图简化这一切。简而言之:
<Grid Grid.Column="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Background="Transparent" BorderBrush="Gainsboro" BorderThickness="3" />
<GridSplitter Grid.Column="1" Width="10"/>
<Border Grid.Column="2" Background="Transparent" BorderBrush="Gainsboro" BorderThickness="3" />
</Grid>
就像一个魅力。相反,以下内容不会:
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Border Grid.Row="0" Background="Transparent" BorderBrush="Gainsboro" BorderThickness="3" />
<GridSplitter Grid.Row="1" Height="10"/>
<Border Grid.Row="2" Background="Transparent" BorderBrush="Gainsboro" BorderThickness="3" />
</Grid>
那有什么不对?
答案 0 :(得分:1)
通常情况下,GridSplitter
元素应根据其大小比例自动选择其调整大小方向(如果Height < Width
则向上 - 向下,如果Width < Height
则向左 - 向右)。由于某种原因,这个逻辑可能不适用,然后需要明确指定调整大小方向。
<GridSplitter Grid.Row="1" Height="10" Width="100" ResizeDirection="Rows"/>
在此代码中,设置Width
和Height
可确保分割器由于零大小而不会保持不可见,ResizeDirection
确保支持正确的方向。
另一个可能派上用场的属性是ResizeBehavior="PreviousAndNext"
,以确保正确的行/列受到调整大小操作的影响。