2015-01-23 3 views
0

Как центрировать приложение Windows Store так, чтобы оно находилось в середине экрана, включая весь его контент, с использованием XAML/C#?Вертикальное выравнивание не работает XAML

Я попытался это:

<Grid HorizontalAlignment="Center" VerticalAlignment="Center"> 

Но, похоже, что vertical alignment не работает, и сетка пребывания в верхней части экрана.

EDIT: Я хочу красный раздел находиться в центре экрана:

enter image description here

<Grid RequestedTheme="Light" Loaded="Grid_Loaded" Background="{ThemeResource AppBarItemBackgroundThemeBrush}"> 
     <Grid.Resources> 
      <Storyboard x:Name="FadeImageStoryboard"> 
       <DoubleAnimation From="0" 
           To="1" 
           Duration="0:0:0.7" 
           Storyboard.TargetName="BackgroundImage" 
           Storyboard.TargetProperty="Opacity" /> 
      </Storyboard> 
     </Grid.Resources> 
     <Grid.ChildrenTransitions> 
      <TransitionCollection> 
       <EntranceThemeTransition/> 
      </TransitionCollection> 
     </Grid.ChildrenTransitions> 
     <Image Source="assets/113h.jpg" Stretch="Fill" x:Name="BackgroundImage" RequestedTheme="Light" Margin="0,-10,0,10" /> 
     <Button x:Name="backButton" Style="{StaticResource NavigationBackButtonNormalStyle}" 
         Margin="23,45,0,0" 
         VerticalAlignment="Top" 
         Command="{Binding NavigationHelper.GoBackCommand, ElementName=pageRoot}" 
         AutomationProperties.Name="Back" 
         AutomationProperties.AutomationId="BackButton" 
         AutomationProperties.ItemType="Navigation Button" Click="backButton_Click"/> 
     <StackPanel x:Name="Container"> 
      <Grid HorizontalAlignment="Center" VerticalAlignment="Center"> 
       <TextBox Margin="363,172,368,308" PlaceholderText="Last Name" BorderBrush="#FF755CB0" BorderThickness="1" Opacity="0.9" x:Name="LastName"/>     

       <Button Content="Sign-Up" HorizontalAlignment="Left" Margin="360,417,0,0" VerticalAlignment="Top" Width="257" Height="50" Background="#FF235085" BorderBrush="#FF6749AC" BorderThickness="1" Foreground="White" Opacity="0.9" RequestedTheme="Light" Click="Register_Click"/> 
      </Grid> 
     </StackPanel> 
    </Grid> 
+0

У вас возникли проблемы с визуализацией вашей проблемы. Возможно, поделитесь быстрым и грязным макетным изображением того, что вы получаете по сравнению с тем, что хотите, и было бы проще перевести это на необходимый вам xaml. –

+0

@ChrisW. Вот что я вижу. Я хочу, чтобы красный был в центре экрана. Http://postimg.org/image/vdr8v5wbx/ – Tal

+2

Мне кажется, что у вас больше возможностей в этом макете, чтобы он не работал так, как вы ожидали , как будто есть еще одна строка или что-то, что толкает эту часть вашего контента. Может быть, показать еще немного xaml? –

ответ

0

Ваш Grid заворачивают в StackPanel. Это означает его центрирование внутри панели стека. Который, учитывая, как работает StackPanel, на самом деле не имеет особого смысла.

Возьмите Grid вне (сделайте это дочерним элементом корня Grid), и центровка будет работать так, как вы ожидаете.

<Grid RequestedTheme="Light" Loaded="Grid_Loaded" Background="{ThemeResource AppBarItemBackgroundThemeBrush}"> 
    ... 
    //No StackPanel! 
    <Grid HorizontalAlignment="Center" VerticalAlignment="Center"> 
     <TextBox Margin="363,172,368,308" PlaceholderText="Last Name" BorderBrush="#FF755CB0" BorderThickness="1" Opacity="0.9" x:Name="LastName"/>  
     <Button Content="Sign-Up" HorizontalAlignment="Left" Margin="360,417,0,0" VerticalAlignment="Top" Width="257" Height="50" Background="#FF235085" BorderBrush="#FF6749AC" BorderThickness="1" Foreground="White" Opacity="0.9" RequestedTheme="Light" Click="Register_Click"/> 
    </Grid> 
    .... 
</Grid> 
+0

@Tal Конечно, добавили его. – BradleyDotNET

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