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

グリッドとその子要素のサイズを設定してから、ビューボックス内に配置します。それはすべてうまく伸縮します。

<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"

明らかに、それはグリップを備えている必要はありません、ただ間違っているわけではありませんが、私はグリップが好きです。編集:私はそれがデフォルトで本当だと思います。

ビューボックスには子を1つしか含めることができないため、通常のように長方形を描画するには、グリッド/キャンバスなどを必ず用意してください。また、ビューボックス内のグリッドのサイズを動的に設定することを賢くしようとすると、失敗する可能性があります。

于 2012-10-31T11:21:57.030 に答える
1

StackPanel を DockPanel に変更するだけです

于 2012-11-02T19:19:23.853 に答える
0

内側の四角形をグリッドの辺にバインドし、比例的にスケーリングする場合は、 horizo​​ntalalign と verticalalign を使用します。これにより、子要素の側面が親コンテナーに「固定」されます。

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

スターを使用すると、設定値に基づいて要素を分割する内部アルゴリズムが使用されます (1* と 2* は、画面の 1/3 を占める列 1 と画面の 2/3 を占める 2 番目の列に相当します)。

于 2012-10-31T11:38:55.890 に答える