Центрирование RelativePanels в UWP C#

Я пытаюсь установить для HorizontalAlignment и VerticalAlignment значение Center, чтобы панель RelativePanel находилась прямо в центре приложения UWP. Внутри RelativePanel есть дочерние элементы, и предполагается, что дочерние элементы находятся в центре RelativePanel. Это должно выглядеть так: введите описание изображения здесь Как вы можете видеть, RelativePanel находится посередине, а дочерние элементы расположены друг над другом и по центру. Я попробовал этот код XAML:

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

Вот как это выглядит при отладке:

введите описание изображения здесь Я что-то здесь не так делаю? Я использую RelativePanel вместо StackPanel, потому что мне нужно, чтобы два ребенка лежали друг над другом.

1 ответ

Решение

Добавлять RelativePanel.AlignHorizontalCenterWithPanel="True" на ваш TextBlock а также TextBox,

<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" на всех своих детей.

Другие вопросы по тегам