WPF-网格拆分器在两个网格之间不工作
我在使网格拆分器正常工作方面遇到一些问题 我已经将GridSplitter放置在两个网格之间,但问题是网格拆分器连接到左侧网格,这是我唯一可以使用拆分器移动的网格。如果将左侧栅格移向右侧栅格,右侧栅格将变小,但如果将其移离右侧栅格,则其扩展不会超过其初始大小 如何放置GridSplitter,使其能够调整右侧栅格的宽度,然后在拖动左侧栅格时减小其宽度 我确实向正确网格的一个子网格添加了SharedSizeGroup,但我不确定这是否与我的问题有关,删除它并不能解决任何问题 我也尝试过和GridSplitter的ResizeBehavor一起玩,但也没有运气 我希望这是有道理的 XAML:WPF-网格拆分器在两个网格之间不工作,wpf,xaml,grid,Wpf,Xaml,Grid,我在使网格拆分器正常工作方面遇到一些问题 我已经将GridSplitter放置在两个网格之间,但问题是网格拆分器连接到左侧网格,这是我唯一可以使用拆分器移动的网格。如果将左侧栅格移向右侧栅格,右侧栅格将变小,但如果将其移离右侧栅格,则其扩展不会超过其初始大小 如何放置GridSplitter,使其能够调整右侧栅格的宽度,然后在拖动左侧栅格时减小其宽度 我确实向正确网格的一个子网格添加了SharedSizeGroup,但我不确定这是否与我的问题有关,删除它并不能解决任何问题 我也尝试过和GridS
看看这个
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="3"></TextBlock>
<Label Grid.Row="0"
Grid.Column="0"
VerticalContentAlignment="Center"
Margin="5" />
<ComboBox Grid.Row="0"
Grid.Column="1"
MinWidth="200px" />
<Label Grid.Column="2"
VerticalContentAlignment="Center"
Margin="10 5 5 5" />
<ComboBox Grid.Row="0"
Grid.Column="3"
IsEditable="True"
MinWidth="250px" />
</Grid>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<!-- The "Left" Grid -->
<Grid Grid.Column="0"
Background="Aqua">
</Grid>
<GridSplitter HorizontalAlignment="Stretch"
ResizeDirection="Columns"
Width="10"
Grid.Column="1"
ResizeBehavior="PreviousAndNext" />
<!-- The "Right" Grid -->
<Grid Grid.Column="2"
Panel.ZIndex="2"
MinWidth="200"
Background="Yellow">
<Border BorderBrush="Blue"
BorderThickness="1"
MinWidth="200"
Background="#4C808080">
<GroupBox MinWidth="200">
<GroupBox.HeaderTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Grid.Row="0"
Grid.Column="1"
Margin="5" />
</Grid>
</DataTemplate>
</GroupBox.HeaderTemplate>
<Grid Grid.IsSharedSizeScope="True">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"
SharedSizeGroup="Label" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Label Grid.Column="0"
Grid.Row="0"
Margin="5"
VerticalAlignment="Center"
Grid.ColumnSpan="2" />
<TextBox Grid.Column="1"
Grid.Row="0"
Margin="5,7"
VerticalAlignment="Center"
IsReadOnly="True" />
<Label Grid.Column="0"
Grid.Row="1"
Margin="5"
VerticalAlignment="Center"
Grid.ColumnSpan="2" />
<TextBox Grid.Column="1"
Grid.Row="1"
Margin="5,7"
VerticalAlignment="Center"
IsReadOnly="True" />
<ItemsControl Grid.Row="2"
Grid.Column="0"
Grid.ColumnSpan="2">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"
SharedSizeGroup="Label" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Label Grid.Column="0"
Grid.Row="0"
Margin="5"
VerticalAlignment="Center" />
<TextBox Grid.Column="1"
Grid.Row="0"
Margin="5"
VerticalAlignment="Center"
IsReadOnly="True" />
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
</GroupBox>
</Border>
</Grid>
</Grid>
<!--Below grid only shown when errors are present. Not relevant for problem -->
<Grid Grid.Row="2">
<TextBlock />
</Grid>
</Grid>
这意味着当您启动应用程序时,第一列的大小将是第三列的两倍。这应该是一个不错的展示,列的大小完全相同,只是侧面而已
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="300"/> //sets the height of the first row
<RowDefinition Height="*"/> //* sets the remainder of the height, doesn't work like auto!
</Grid.RowDefinitions>
<Grid Grid.Row="0"
HorizontalAlignment="Left"
Width="400"
Background="Green" />
<Grid Grid.Row="0"
Margin="400,0,0,0"
Background="Red"/>
<Grid Grid.Row="1"
Background="Blue"/>
<GridSplitter Grid.Row="0"
VerticalAlignment="Bottom"
HorizontalAlignment="Stretch"
Height="2.5"
Background="Black" />
</Grid>
//设置第一行的高度
//*设置剩余的高度,不像自动!
它可以工作,谢谢。但现在两个网格最初的大小相同。我希望正确的网格比web浏览器网格窄。我将如何实现这一点?我可以看到,您删除了右侧的水平对齐,我认为这是更改GridRowDefinitions中宽度的一种方法。例如:左边的行为Width=“2*”,右边的行为Width=“1*”。仍然无法使其工作。您能指出我在哪里设置宽度以减少“右侧”网格的起始宽度吗。对不起,我的XAML知识真的很差!谢谢我不知道你能做到。好的,我还有最后一个问题(希望如此),当使用网格拆分器扩展正确的网格,从而减小web浏览器的宽度时,一切都很酷。但是,如果缩小右侧网格的宽度,从而扩展web浏览器,它会以白色背景闪烁,就像在努力快速渲染一样。您知道如何在扩展web浏览器时去除白色背景吗?欢迎光临。Puh…很久没有使用webbrowser控件了。我认为您的想法是正确的:渲染需要一些时间。但我不太确定,也不知道你是否能或如何改变这一点;很抱歉
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="1*" />
</Grid.ColumnDefinitions>
<!-- The "Left" Grid -->
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="300"/> //sets the height of the first row
<RowDefinition Height="*"/> //* sets the remainder of the height, doesn't work like auto!
</Grid.RowDefinitions>
<Grid Grid.Row="0"
HorizontalAlignment="Left"
Width="400"
Background="Green" />
<Grid Grid.Row="0"
Margin="400,0,0,0"
Background="Red"/>
<Grid Grid.Row="1"
Background="Blue"/>
<GridSplitter Grid.Row="0"
VerticalAlignment="Bottom"
HorizontalAlignment="Stretch"
Height="2.5"
Background="Black" />
</Grid>