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)
потому что позиция кнопки основана на верхнем правом углу кнопки, а не в центре.
StackPanel
control объединяет дочерние элементы в одну строку, которая может быть ориентирована горизонтально или вертикально. Когда
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;