2016-02-28 69 views
0

我創建使用WPF的桌面應用程序。
我已經把連續三個元素:按鈕,文本框和標籤。
當我調整屏幕,餘量標籤和文本框是一致的,但不適合的按鈕。按鈕根據屏幕高度縮小和拉伸。動態餘量按鈕

enter image description here

enter image description here

正如你可以看到,當屏幕高度越大,按鍵較大,反之亦然。

下面是代碼:

<Grid Grid.Row="0" Grid.Column="1"> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="1*"></ColumnDefinition> 
     <ColumnDefinition Width="1*"></ColumnDefinition> 
     <ColumnDefinition Width="1*"></ColumnDefinition> 
    </Grid.ColumnDefinitions> 

    <TextBlock Text="Search: (Name or Contact)" Grid.Row="0" Grid.Column="0" HorizontalAlignment="Right" Margin="0,0,25,0" VerticalAlignment="Center" FontSize="20" TextWrapping="Wrap"/> 
    <TextBox Grid.Column="1" HorizontalAlignment="Stretch" Height="auto" Margin="25,0,25,0" TextWrapping="Wrap" Text="" VerticalAlignment="Center" FontSize="20" Grid.Row="0" Name="TxtSearch" TextChanged="TxtSearch_TextChanged"/> 
    <Button x:Name="BtnSearch" Grid.Column="2" Grid.Row="0" FontSize="20" Click="BtnSearch_Click" Margin="32"> 
     <Viewbox> 
      <TextBlock> 
       Search 
      </TextBlock> 
     </Viewbox> 
    </Button> 
</Grid> 

我想按鈕的高度要一致和保證金是動態的。

回答

2

有幾種方法去這個問題。

例如,您可以將Button的VerticalAlignment設置爲Center,並且在正常情況下它可以工作。但是,您的內容爲Viewbox,其內部爲TextBlock。那麼,Viewbox,你現在設置的方式,將根據窗口大小重新調整大小。如果你選擇了VerticalAlignment辦法,我建議乾脆按鈕的Content設置你的「搜索」文本:Content="Search"

如果您希望保留Viewbox,您可以將按鈕的高度設置爲靜態值,並且這絕對會阻止垂直調整大小。但是,在這種情況下,我不是靜態維度的巨大粉絲。

我不完全知道爲什麼你有Viewbox有,但這些是兩個最簡單的方法迄今。除非您有將Viewbox作爲按鈕的內容的特定原因,否則我會將其刪除,因爲這會導致您不必要的問題。 Viewbox有其用途,但我不認爲這是其中之一。

0

當你定義一個網格,有/ 3個posibilities的寬度高度

  • 固定大小
  • 自動(展開到內容的大小)
  • 星(乘儘可能多的空間如可用)

因此,在您的情況下Button放置在Grid.Row =「0」,使該行爲固定的大小。如果你只是在網格中定義一行,我建議你再做一個'星號'高度的行。然後將視框放在行中。