我试图设置按钮的位置,但每当我做
之类的事情时leftButton.Location = new Point(1, 1);
我得到"'按钮'不包含'位置'的定义没有扩展方法'位置'接受类型'按钮'的第一个参数。可以找到"。谁能帮我这个?非常感谢!
答案 0 :(得分:2)
WPF元素没有"位置"属性,因为元素是根据其容器定位的。
例如,如果您将一个Button放在Grid
内,您可以使用Grid的布局系统(例如,Row,Column,RowSpan,ColumnSpan等)对其进行定位,然后微调其位置使用Button的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中创建UI的好方法。 Grid
,StackPanel
,DockPanel
,UniformGrid
和其他人在创建复杂的UI布局方面要好得多,并且在大多数用例中都不需要任何C#代码。如果您需要在XAML中实现的目标,那么尽可能多地使用XAML并使用C#代码也是一个好主意。