将文本块对齐到页面底部

时间:2014-08-15 19:00:18

标签: xaml windows-phone

我正在尝试将我的Windows Phone应用程序的版本与页面的底部中心对齐。 它将其置于视图中的所有组件的底部(下方)。但不是我的页面底部

<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>

我希望它位于页面底部。

2 个答案:

答案 0 :(得分:8)

您可以使用Grid

<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>

Grid包含两行。第二行采用其内容所需的高度,第一行采用剩余高度。可以在visualstudiomagazine.com上找到解释此内容的好文章:Windows Phone Layout Using Grid

答案 1 :(得分:0)

不要使用StackPanel,因为StackPanel只会使用其内容所需的空间(它不会填满页面)。

Grid可以是一个不错的选择,DockPanel可以,DockPanel在Windows手机上不可用。对于Grid设置一些行,所以底部元素位于底行(您想要的位置)。它实际上可能是两行,一行是你的&#34;主要&#34;内容和一个页脚。

对于DockPanel,请将DockPanel.Dock="Bottom"底部的元素设置为底部,其余部分(按顺序)设置为DockPanel.Dock="Top"。您可能需要将LastChildFill属性设置为&#34; False&#34;得到你想要的样子。