用户控件的位置

本文关键字:位置 控件 用户 | 更新日期: 2023-09-27 18:14:58

我正在开发一个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);            
    }

但是,它不起作用。还有别的办法吗?

用户控件的位置

当您将控件添加到Grid容器时,您应该通过设置ColumnRow来设置其位置。

为了做到这一点,您将需要配置您的网格,使其具有添加新用户控件所需的行数和列数。

一个经常被忽略的控件是UniformGrid。

<UniformGrid Name="MainGrid" Rows="3" Columns="2"/>

继续像以前一样添加UserControl

var MyCard = new vCard();
MainGrid.Children.Add(MyCard);

这将为您的项目提供一个漂亮且均匀分布的容器。如果你想调整项目之间的间距,有几种方法可以做到,最简单的是调整UserControl本身的Margin属性。

<UserControl Margin="8" ... />

我将创建对象的ObservableCollection,并将它们放置在堆栈面板中。这样你就可以添加/删除/订购用户控件。然后你就可以设置堆栈内部的大小。