Windows Phone StackPanel子元素如何共享可用宽度

时间:2014-04-19 10:55:17

标签: xaml user-interface mobile windows-phone-8

在Windows Phone XAML中,我有一个水平方向的StackPanel,我希望它的子UI控件能够平等地共享相同的可用宽度,或者在我的情况下,我希望TextBlock共享1/3,TextBox获得2 / 3可用宽度。如何在不给宽度的硬编码值的情况下得到它?

以下是代码示例。

    <StackPanel Orientation="Horizontal">
        <TextBlock Text="Bill Total: " 
                   VerticalAlignment="Center"/>
        <TextBox InputScope="Number" 
                 VerticalAlignment="Center" 
                 PlaceholderText="Bill Total" 
                 AcceptsReturn="True" 
                 x:Name="txtBillTotal"
                 />
    </StackPanel>

1 个答案:

答案 0 :(得分:1)

据我所知,你不能用StackPanel做到这一点。尝试使用Grid而不是按比例设置列定义宽度:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="2*"/>
    </Grid.ColumnDefinitions>
    <TextBlock Text="Bill Total: " 
               VerticalAlignment="Center"/>
    <TextBox Grid.Column="1"
             InputScope="Number" 
             VerticalAlignment="Center" 
             PlaceholderText="Bill Total" 
             AcceptsReturn="True" 
             x:Name="txtBillTotal"
             />
</Grid>

这将第二列设置为比第一列宽两倍,这意味着宽度为2/3 Grid。剩下的1/3给第1列。