我正在尝试将我的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>
我希望它位于页面底部。
答案 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;得到你想要的样子。