Xaml 将文本块与页面底部对齐
我正在尝试将windows phone应用程序的版本与页面底部中间对齐。 它将其放置在视图中所有组件的底部(下方)。但不是在我的页面底部Xaml 将文本块与页面底部对齐,xaml,windows-phone,Xaml,Windows Phone,我正在尝试将windows phone应用程序的版本与页面底部中间对齐。 它将其放置在视图中所有组件的底部(下方)。但不是在我的页面底部 <StackPanel> <TextBlock Text="Username:" Margin="12,0,0,0"/> <TextBox Text="{Binding UserName, Mode=TwoWay}" c4f:TextBinding.UpdateSourceOnChange="True" Input
<StackPanel>
<TextBlock Text="Username:" Margin="12,0,0,0"/>
<TextBox Text="{Binding UserName, Mode=TwoWay}" c4f:TextBinding.UpdateSourceOnChange="True" InputScope="EmailUserName" />
<TextBlock Text="Password:" Margin="12,0,0,0"/>
<PasswordBox Password="{Binding Password, Mode=TwoWay}" c4f:TextBinding.UpdateSourceOnChange="True" />
<Button Content="Next" IsEnabled="{Binding CanMoveNext}" Command="{Binding LoginCommand}"/>
<TextBlock Text="{Binding ConnectionError}" TextWrapping="Wrap" FontSize="{StaticResource TitleSize}"></TextBlock>
<TextBlock Text="{Binding VersionNumber}" Height="450" Padding="3" TextWrapping="Wrap" VerticalAlignment="Bottom" HorizontalAlignment="Center" FontSize="15"></TextBlock>
</StackPanel>
我希望它位于页面底部。不要为此使用
StackPanel
,因为StackPanel
只会使用其内容所需的空间(不会填满页面)
在这里,Grid
和DockPanel
一样是一个不错的选择,尽管DockPanel
在windows phone上不可用。对于网格
设置一些行,使底部元素位于底部行(您需要的位置)。它实际上可以是两行,一行用于“主要”内容,另一行用于页脚
对于
DockPanel
,使用DockPanel.Dock=“bottom”
设置需要位于底部的元素,使用DockPanel.Dock=“Top”
设置其余元素(按顺序)。您可能需要将LastChildFill
属性设置为“False”以获得所需的外观。您可以使用网格来实现此目的:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<StackPanel Grid.Row="0">
...
</StackPanel>
<TextBlock Grid.Row="1" Text="{Binding VersionNumber}" Padding="3" TextWrapping="Wrap" HorizontalAlignment="Center" FontSize="15"/>
</Grid>
...
该网格包含两行。第二行的高度与其内容所需的高度相同,第一行的高度为剩余高度。visualstudiomagazine.com上有一篇很好的文章解释了这一点:我认为Windows Phone上没有DockPanel
。@venerik我不确定,我回答时标签也不一样:)。网格很可能是OP想要的方式。非常感谢Bradley和Venerik。我无法添加DockPanel。用网格修复了它。:)