【发布时间】:2009-11-08 14:48:46
【问题描述】:
我正在构建一个小型 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>
现在,我尝试将矩形 Fill 设置为 strech,将 grid.columnspan 和 grid.rowspan 设置为 2。我尝试将矩形放置在视图框内。没有任何效果。
有人知道如何让矩形填满整个窗口吗?
提前谢谢!
【问题讨论】:
-
您在 Rectangle 上定义了两次 Fill 属性(一次作为属性,然后作为子元素)只是一个错字吗?
-
请注意,面板确实有一个Background 属性,因此,如果最终目标是在 Grid 中设置背景而不对 Rectangle 执行任何其他操作,那么您可以简单地设置 Grid.Background使用 RadialGradientBrush。