UWP - как центрировать кнопку?

Я создал решение UWP и создал кнопку. С кнопками проблем нет.

Не знаю, как центрировать кнопку в окне.


Код

        StackPanel stackPanel1 = new StackPanel();

        Button TestButton = new Button();
        TestButton.Content = "Test";

        stackPanel1.Children.Add(subscribeButton);
  
        Window.Current.Content = stackPanel1;

4 ответа

Эта линия - все, что вам нужно.

TestButton.HorizontalAlignment = HorizontalAlignment.Center;

Вы можете установить HorizontalAlignment что-то вроде этого внутри стековой панели...

<StackPanel Margin="10,0,0,0" Orientation="Horizontal" Grid.Column="0">
<TextBlock Grid.Column="1" Grid.Row="0" FontSize="16" HorizontalAlignment="Center">2. Draw a pattern</TextBlock>
                <Button x:Name="DeleteSiteButton" Content="Delete Site" 
                        HorizontalAlignment="Right" Margin="0,0,0,0" VerticalAlignment="Top" Click="DeleteSiteButton_Click"/>
                <Button x:Name="AddSiteButton" Content="Add Site" HorizontalAlignment="Right"
                    Margin="10,0,0,0" VerticalAlignment="Top" Click="AddSiteButton_Click"/>
            </StackPanel>

Можно изменить положение кнопки на половину ширины и высоты формы.

Point point = new Point(this.Width / 2 - (button1.Width/2), this.Height / 2 - (button1.Height/ 2)); 
button1.Location = point;

Добавленный - (button1.Width/2) потому что позиция кнопки основана на верхнем правом углу кнопки, а не в центре.

StackPanelcontrol объединяет дочерние элементы в одну строку, которая может быть ориентирована горизонтально или вертикально. Когда Orientation свойство установлено на Vertical(Значение по умолчанию - Vertical), VerticalAlignmentсвойство элемента управления кнопки будет недопустимым. Аналогично, когда Orientation свойство установлено на Horizontal, то HorizontalAlignment свойство элемента управления кнопки будет недопустимым.

Если вы добавите кнопку в StackPanel, то HorizontalAlignment собственность и VerticalAlignment свойство элемента управления кнопки не будет работать одновременно, то есть элемент управления кнопки не может быть центрирован в StackPanel.

Мы предлагаем вам добавить кнопку в Grid панель, вот так:

Grid gridPanel1 = new Grid();

Button TestButton = new Button();
TestButton.Content = "Test";
TestButton.HorizontalAlignment = HorizontalAlignment.Center;
TestButton.VerticalAlignment = VerticalAlignment.Center;

gridPanel1.Children.Add(TestButton);

Window.Current.Content = gridPanel1;
Другие вопросы по тегам