2014-08-15 5 views
5

Я пытаюсь выровнять версию приложения 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> 

Я хочу, чтобы это было внизу страницы.

ответ

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

0

Не используйте StackPanel для этого, так как StackPanel будет использовать только столько места, сколько необходимо для его содержимого (он не заполнит страницу).

A Grid может быть хорошим выбором здесь, а также DockPanel, хотя DockPanel не доступен на телефоне Windows. Для Grid настройте несколько строк, чтобы нижний элемент находился в нижней строке (где вы хотите). На самом деле это может быть две строки: одна для вашего «основного» контента и одна для нижнего колонтитула.

Для DockPanel установите элемент, который должен быть внизу, с DockPanel.Dock="Bottom", а остальная часть (в порядке) с DockPanel.Dock="Top". Вам может потребоваться установить для свойства LastChildFill значение «False», чтобы получить нужный вам вид.

+0

Я не думаю, что «DockPanel» доступен на Windows Phone. – venerik

+2

@venerik Я не был уверен, и теги были разными, когда я ответил :). Вероятно, сетка - это то, как OP хочет пойти сюда. – BradleyDotNET

+0

Большое спасибо Брэдли и Венерику. Я не мог добавить DockPanel. Исправлено с помощью Grid. :) – Somu

Смежные вопросы