3

我正在使用 WPF 矩形,并且在重新调整窗口大小时需要重新调整大小。我尝试了几个帮助发布了几个地方,例如在大小后使用星号(“*”),但没有奏效。关于这个问题有什么帮助吗?

 <StackPanel>
   <Rectangle Height="5">
   <Rectangle Height="495">
     <Rectangle.Fill>
       <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
         <GradientStop Color="#F7F6EF" Offset="0.0"></GradientStop>
         <GradientStop Color="#E5DABE" Offset="1.0"></GradientStop>
       </LinearGradientBrush>
     </Rectangle.Fill>
   </Rectangle>
 </StackPanel>
4

3 回答 3

1

Just change StackPanel to DockPanel

于 2012-11-02T19:19:23.853 回答
1

调整网格及其子元素的大小,然后将其放在视图框中。它会很好地扩展和收缩。

<Viewbox Stretch="Uniform" MinHeight="700" MinWidth="258">   
<Grid Height="700" Width="250">
<Grid Width="235" Margin="0,15,0,0" Height="620">
</Grid>
</Grid>
</Viewbox>

那种东西你甚至可以创造出很好的东西,比如强制拉伸均匀,这就是我认为你所追求的。

请记住,您需要在顶部:

ResizeMode="CanResizeWithGrip"

显然它不需要有握力,只是不是假的,但我喜欢握力。编辑:我认为默认情况下是真的。

请注意,视图框只能有一个孩子,因此请确保仍然有一个网格/画布等来像平常一样绘制矩形。如果您尝试巧妙地在视图框中动态设置网格的大小,它也可能会搞砸。

于 2012-10-31T11:21:57.030 回答
0

如果您希望将内部矩形绑定到网格的侧面并缩放比例,请使用水平对齐和垂直对齐。这会将子元素的侧面“固定”到父容器。

<Grid.ColumnDefinitions>
   <ColumnDefinition MinWidth="1*"></ColumnDefinition>
   <ColumnDefinition Width="2*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Rectangle Column="0" HorizontalAlign="stretch" VerticalAlign="stretch"/>

使用星形使用内部算法,根据设置值划分元素( 1* 和 2* 相当于第一列占据屏幕的 1/3,第二列占据屏幕的 2/3)

于 2012-10-31T11:38:55.890 回答