在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>
答案 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列。