我有一个3列网格,我有:
以下是代码:
<Window x:Class="TestGridWPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" MinWidth="900" Width="900">
<Grid Grid.Column="2" x:Name="Grid2">
<Grid.ColumnDefinitions>
<ColumnDefinition x:Name="Panel1Col" Width="2000*"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition x:Name="Panel2Col" Width="*" MinWidth="200"></ColumnDefinition>
</Grid.ColumnDefinitions>
<ContentControl x:Name="ContentControl" Grid.Column="0" BorderThickness="5">
<Rectangle Width="1800" Height="500" HorizontalAlignment="Left" VerticalAlignment="Top" Fill="Green"></Rectangle>
</ContentControl>
<GridSplitter Grid.Column="1" Width="5"></GridSplitter>
<Border Grid.Column="2" BorderBrush="Blue" BorderThickness="5"></Border>
</Grid>
</Window>
对于列的固定最小宽度,当我缩小窗口时,第一列会缩小一点,但Grid会比窗口大,第三列会被剪裁。
为什么这样做?我该如何解决这个问题?
答案 0 :(得分:3)
您的Grid
配置:
以上配置似乎有问题。没有足够的空间来正确渲染所有列(需要窗口宽度至少为200 + (2000*200) + 5
)。
最终结果,WPF将此配置呈现为:
Grid
的所有宽度。Grid
内,其余部分在Grid
之外呈现右。渲染布局:
但是如何准确地修复它取决于你想要实现的目标(最有意义的是减少第1列的宽度)。我希望这个解释可以帮助您更好地决定如何修复布局。