我正在开发一个WPF应用程序,我已经创建了一个自定义用户控件,因为我需要在主窗口上创建它的实例。所以,这就是我创建一个新实例的方式:
var MyCard = new vCard();
MainGrid.Children.Add(MyCard);
Grid.SetColumn(MyCard, 1);
Grid.SetRow(MyCard, 0);
但我需要按顺序放置每一个,所以,我怎样才能设置X&每个人的Y位置。我尝试在usercontrol中创建一个方法来设置margin属性,例如:
public void SetX(double X)
{
double Y =this.Margin.Top;
this.Margin = new Thickness(X, Y, 0, 0);
}
但是,它不起作用。还有其他办法吗?
答案 0 :(得分:4)
当您将控件添加到Grid
容器时,您应该通过设置Column
和Row
来设置其位置。
为此,您需要将网格配置为具有添加新用户控件所需的行数和列数。
答案 1 :(得分:3)
经常被忽视的控制是UniformGrid。
<UniformGrid Name="MainGrid" Rows="3" Columns="2"/>
继续像以前一样添加UserControl
。
var MyCard = new vCard();
MainGrid.Children.Add(MyCard);
这将为您的商品提供一个漂亮且均匀分布的容器。如果您想调整项目之间的间距,可以通过几种方式进行调整,最简单的方法是调整Margin
本身的UserControl
属性。
<UserControl Margin="8" ... />
答案 2 :(得分:1)
我会创建一个ObservableCollection
个对象并将它们放在堆栈面板中。这样您就可以添加/删除/订购用户控件。然后你可以设置堆栈内部的大小。