我正在构建一个小型WPF应用程序。对于应用程序中的布局,我使用具有两列和两行的网格。我希望有一个填充整个应用程序的背景矩形,我想要拉伸背景矩形,所以如果用户调整窗口大小,矩形拉伸并始终填充整个窗口。所以在我的网格中我定义了一个矩形如下:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Rectangle x:Name="BackgroundRect" Fill="Stretch">
<Rectangle.Fill>
<RadialGradientBrush GradientOrigin="0.485,0.2" Center="0.492,0.526">
<GradientStop Color="#FF3C3C3E" Offset="1"/>
<GradientStop Color="#FF84897D"/>
</RadialGradientBrush>
</Rectangle.Fill>
</Rectangle>
</grid>
现在,我尝试将矩形填充设置为拉伸,我已将grid.columnspan和grid.rowspan设置为2.我已尝试将矩形放置在视图框中。什么都行不通。
有谁知道如何让矩形填满整个窗口?
提前Thanx!
答案 0 :(得分:5)
首先,在Grid.ColumnSpan="2"
上设置Grid.RowSpan="2"
和Rectangle
。如果您希望它跨越整个网格,则需要执行此操作。
其次,由于您已将Column/RowDefinition
Width/Heights
设置为Auto
,因此您现在不会显示任何内容,因为这些列/行中没有内容可自动调整大小(也许你刚刚删除它的样本?)。您应该做的是将其中一列设置为Width="*"
,将其中一行设置为Height="*"
,其基本上是:“用此列/行填充水平/垂直空间的剩余部分”。
第三,直到你在Grid
中放置东西,你才会看到任何东西,因为它没有高度。如果您只想确保正确显示背景Rectangle
,请暂时将Grid
设为Height="200"
或其他内容。