Невозможно установить расположение кнопки в WPF - PullRequest
0 голосов
/ 14 мая 2018

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

leftButton.Location = new Point(1, 1);

Я получаю, что «Кнопка» не содержит определения «Местоположение», и не найдено никакого метода расширения «Местоположение», принимающего первый аргумент типа «Кнопка» ». Кто-нибудь может мне с этим помочь? Большое спасибо!

1 Ответ

0 голосов
/ 14 мая 2018

Элементы WPF не имеют свойства «Расположение», поскольку элементы располагаются на основе своего контейнера.

Например, если вы поместите кнопку внутри Grid, вы поместите ее с помощью системы макетов сетки (например, Row, Column, RowSpan, ColumnSpan и т. Д.), А затем выполните точную настройку ее положения с помощью кнопки Margin HorizontalAlignment, VerticalAlignment свойства. Так что в примере Grid «Location» ничего не значит.

Существует контейнер, который делает то, что вы пытаетесь сделать, он называется Canvas. Если вы поместите кнопку внутри холста, вы сможете контролировать ее расположение, аналогично тому, что вы пытаетесь сделать.

Например, в XAML:

<Canvas>
    <Button Canvas.Left="20" Canvas.Top="50">Click me</Button>
</Canvas>

В коде C #:

Button button = new Button {Content = "Click me"};
Canvas.SetLeft(button, 20);
Canvas.SetTop(button, 50);

canvas.Children.Add(button);

Обратите внимание, что использование Canvas, как правило, не является отличным способом создания пользовательских интерфейсов в WPF. Grid, StackPanel, DockPanel, UniformGrid и другие намного лучше создают сложные макеты пользовательского интерфейса и не требуют кода C # для большинства случаев использования. Также неплохо сделать как можно больше с помощью XAML и использовать код C #, если вам это нужно, для вещей, которых вы не можете достичь в XAML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...