无法在WPF中设置按钮位置

时间:2018-05-13 22:47:15

标签: c# button

我试图设置按钮的位置,但每当我做

之类的事情时
leftButton.Location = new Point(1, 1);

我得到"'按钮'不包含'位置'的定义没有扩展方法'位置'接受类型'按钮'的第一个参数。可以找到"。谁能帮我这个?非常感谢!

1 个答案:

答案 0 :(得分:2)

WPF元素没有"位置"属性,因为元素是根据其容器定位的。

例如,如果您将一个Button放在Grid内,您可以使用Grid的布局系统(例如,Row,Column,RowSpan,ColumnSpan等)对其进行定位,然后微调其位置使用Button的MarginHorizontalAlignmentVerticalAlignment属性。所以在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中创建UI的好方法。 GridStackPanelDockPanelUniformGrid和其他人在创建复杂的UI布局方面要好得多,并且在大多数用例中都不需要任何C#代码。如果您需要在XAML中实现的目标,那么尽可能多地使用XAML并使用C#代码也是一个好主意。