2012-04-18 43 views
6

如果我在一個StackPanel兩個元素:設置兩個子元素等寬,各有50%的WPF

<StackPanel Margin="2,2,2,2" Orientation="Horizontal"> 
     <TextBlock Grid.Column="0" Text="{Binding Name}" /> 
     <TextBox Grid.Column="1" Text="{Binding Age}"/> 
</StackPanel> 

我怎樣才能將它們與同樣寬度的50%,50%?

在此先感謝。

+0

你需要使用一個StackPanel這個?爲什麼不使用網格。對我來說似乎更適合你的50/50寬度。 – 2012-04-18 07:39:22

+0

它不需要使用StackPanel。那麼如何使用Grid呢? – olidev 2012-04-18 07:41:58

回答

18

爲了回答您的評論

<Grid> 
    <!-- Define Columns --> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="*"/> 
     <ColumnDefinition Width="*"/> 
    </Grid.ColumnDefinitions>  

    <TextBlock Grid.Column="0" Text="{Binding Name}" /> 
    <TextBox Grid.Column="1" Text="{Binding Age}"/> 
</Grid> 
+0

謝謝。這真的是我需要的。你能否也請回答我的其他問題在這裏:http://stackoverflow.com/questions/10205271/using-textbox-or-checkbox-depending-on-the-type-of-an-attribue – olidev 2012-04-18 07:59:54

+0

FYI如果你想有列之間的空間使用網格中的一個元素上的邊距 – mstrewe 2014-01-07 08:47:29

+0

如何定義文本塊以佔用100% – Shiva 2017-08-11 13:17:41

12

使用UnformGrid 2列或網格2列

<UniformGrid Columns="2"> 
    <TextBox></TextBox> 
    <TextBox></TextBox> 
</UniformGrid> 

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition></ColumnDefinition> 
     <ColumnDefinition></ColumnDefinition> 
    </Grid.ColumnDefinitions> 
    <TextBlock Grid.Column="0" 
       Text="{Binding Name}" /> 
    <TextBox Grid.Column="1" 
      Text="{Binding Age}" /> 

</Grid> 
+0

你能舉個例子嗎? – olidev 2012-04-18 07:47:53

+0

非常感謝。 UniformGrid是天才。對不起。另一個人先回答了這個問題。非常感謝! – olidev 2012-04-18 08:01:37

+0

你有這個問題的想法:http://stackoverflow.com/questions/10205271/using-textbox-or-checkbox-depending-on-the-type-of-an-attribue – olidev 2012-04-18 08:02:32

相關問題