在windows Phone XAML中,我有一个水平方向的StackPanel,我希望它的子UI控件共享相等的可用宽度,或者在我的情况下,我希望TextBlock共享1/3,TextBox获得2/3的可用宽度。如何在不给width提供硬编码值的情况下获得它?
下面是代码示例。
<StackPanel Orientation="Horizontal">
<TextBlock Text="Bill Total: "
VerticalAlignment="Center"/>
<TextBox InputScope="Number"
VerticalAlignment="Center"
PlaceholderText="Bill Total"
AcceptsReturn="True"
x:Name="txtBillTotal"
/>
</StackPanel>
就我所见,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列。