2012-10-31 61 views
3

我正在使用WPF矩形,並且在重新調整窗口大小時需要重新調整大小。我嘗試了幾個幫助發佈了幾個地方,比如在大小之後使用星號(「*」)但沒有工作。有關此事的任何幫助?如何使用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> 
+0

矩形的容器是什麼? –

+3

向我們展示一些代碼。什麼是您使用的佈局容器,網格?帆布?共享XAML。 – tempidope

+0

容器是堆疊面板 – damitha119

回答

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" 

顯然,這並不需要與抓地力,只是不假,但我喜歡的抓地力。編輯:我認爲這是默認的。

請注意,視圖框只能有一個孩子,所以一定要保留一個網格/畫布等來繪製矩形,就像平常一樣。此外,如果您試圖靈活地動態地在視圖框內設置網格的大小,它可能會搞砸。

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的屏幕)

1

只需將StackPanel更改爲DockPanel

相關問題