2017-08-13 37 views
2

我正在嘗試將Horizo​​ntalAlignment和VerticalAlignment設置爲居中,以便RelativePanel將在UWP應用程序中居中。在RelativePanel裏面有兒童項目,並且兒童應該在裏面居中RelativePanel。它應該看起來像這樣:enter image description here正如你所看到的,RelativePanel在中間,並且孩子們在的集中的頂部。我想這XAML代碼:在UWP中居中RelativePanels C#

<RelativePanel x:Name="relativePanel1" HorizontalAlignment="Center" VerticalAlignment="Center"> 
    <TextBlock x:Name="textBlock1" Text="Yo, waddup? Enter your GUID to continue" IsTextSelectionEnabled="True" FontFamily="Chiller" FontSize="72" HorizontalAlignment="Center" VerticalAlignment="Center" /> 
    <TextBox x:Name="textBox1" AcceptsReturn="True" HorizontalAlignment="Center" InputScope="Text" PlaceholderText="{}{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}" RelativePanel.Below="textBlock1" VerticalAlignment="Center" /> 
</RelativePanel> 

下面是調試時的樣子:

enter image description here我是不是做錯了這裏?我使用的是一個RelativePanel而不是StackPanel,因爲我需要兩個孩子在彼此之上。

回答

2

RelativePanel.AlignHorizontalCenterWithPanel="True"添加到您的TextBlockTextBox

<RelativePanel x:Name="relativePanel1" 
       HorizontalAlignment="Center" 
       VerticalAlignment="Center"> 
    <TextBlock x:Name="textBlock1" 
       RelativePanel.AlignHorizontalCenterWithPanel="True" 
       Text="Yo, waddup? Enter your GUID to continue" 
       IsTextSelectionEnabled="True" 
       FontFamily="Chiller" 
       FontSize="72" /> 
    <TextBox x:Name="textBox1" 
      RelativePanel.AlignHorizontalCenterWithPanel="True" 
      AcceptsReturn="True" 
      InputScope="Text" 
      PlaceholderText="{}{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}" 
      RelativePanel.Below="textBlock1" /> 
</RelativePanel> 

雖然可能還有更多。你的RelativePanel顯然看起來頂部對齊給我。這意味着它的父母面板不是延伸。另外,如果居中完成,則不必在此處使用RelativePanel。您可以用StackPanel替換它,並在其所有子級上手動設置HorizontalAlignment="Center"

+1

謝謝!它完全奏效。你能告訴我在我以前的代碼中我做錯了什麼嗎? –

+0

是的,你基本上需要在你的元素上使用'RelativePanel.xxx'來相應地定位它們。看看這個[鏈接](https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.relativepanel)。 –