WPF中的多重并行网格拆分器
我把整个屏幕分成了3行和2个网格拆分器。当前,当我移动第一个/第二个栅格拆分器时,我的中间行正在更改其高度 预期行为: 基本上,中间行的高度应保持不变,但仅应根据顶部/底部行的高度变化进行移动 如果我移动我的第一个网格拆分器,那么我的另一行应该跟随它。这意味着中间一行应该移动,最后一行应该增加高度。类似地,若我移动第二个网格拆分器,那个么中间行不应该改变其高度,而是应该移动。而第一排应该增加高度 为了更好地理解,请检查我的以下代码。 有人能帮我吗,我怎样才能做到这一点WPF中的多重并行网格拆分器,wpf,gridsplitter,Wpf,Gridsplitter,我把整个屏幕分成了3行和2个网格拆分器。当前,当我移动第一个/第二个栅格拆分器时,我的中间行正在更改其高度 预期行为: 基本上,中间行的高度应保持不变,但仅应根据顶部/底部行的高度变化进行移动 如果我移动我的第一个网格拆分器,那么我的另一行应该跟随它。这意味着中间一行应该移动,最后一行应该增加高度。类似地,若我移动第二个网格拆分器,那个么中间行不应该改变其高度,而是应该移动。而第一排应该增加高度 为了更好地理解,请检查我的以下代码。 有人能帮我吗,我怎样才能做到这一点 <Grid>
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="50" />
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="Auto"/>
<RowDefinition Height="100"/>
<RowDefinition Height="Auto"/>
<RowDefinition />
</Grid.RowDefinitions>
<Grid Grid.Row="0" x:Name="FirstRow">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="5"/>
<ColumnDefinition />
<ColumnDefinition Width="5"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TreeView Grid.Column="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" BorderBrush="Black" Background="Red"/>
<GridSplitter Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="Transparent"/>
<TreeView Grid.Column="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" BorderBrush="Black" Background="Green"/>
<GridSplitter Grid.Column="3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="Transparent" />
<TreeView Grid.Column="4" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" BorderBrush="Black" Background="Blue"/>
</Grid>
<GridSplitter x:Name="gridSplitter1" Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Center" Background="Transparent" Height="5" />
<TextBlock x:Name="SecondRow" Grid.Row="2" Text="SecondRow" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10"/>
<GridSplitter x:Name="gridSplitter2" Grid.Row="3" HorizontalAlignment="Stretch" VerticalAlignment="Center" Background="Transparent" Height="5" />
<DataGrid Grid.Row="4" x:Name="ThirdRow">
<DataGrid.Columns>
<DataGridTextColumn Header="Col A" />
<DataGridTextColumn Header="Col B" />
<DataGridTextColumn Header="Col C" />
</DataGrid.Columns>
</DataGrid>
</Grid>
<Button Grid.Row="1" HorizontalAlignment="Left" Content="Delete" Margin="10"/>
<Button Grid.Row="1" HorizontalAlignment="Right" Content="Close" Margin="10"/>
</Grid>
我无法理解你用这个解释想要达到什么目的。你能告诉我你移动网格分离器的方向吗。此外,可以向对象添加x:names,以便按名称引用它们。谢谢,如您所愿,我已经在每一行中添加了名称,以便于识别。如果我移动“gridsplitter1”,那么“第一行/第二行”的高度可以根据我移动的方向增加/减少。这意味着,如果我向上移动“gridsplitter1”,则“第一行”的高度将减小,“第三行”的高度将增大。但“第二排”的同一时间高度将保持不变。“第二排”的高度不能增减,只能移动。啊,太好了。谢谢你的编辑。我将尽快重新讨论这个问题