Элементы 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.