C# 如何在WPF中重写Canvas类的Children.Add方法

C# 如何在WPF中重写Canvas类的Children.Add方法,c#,wpf,canvas,overriding,C#,Wpf,Canvas,Overriding,我已经有了一个自定义的Canvas类,我已经在其中重写了“OnMoseDown”方法。 但现在我还想重写“Children.Add”方法。 但我没有找到任何解决办法 我想在将子对象添加到画布时获取Child.ActualWidth 谢谢。这可能无法正常工作。在设置其实际宽度之前,将添加一个子项,因为该属性在布局阶段设置 根据您的目标,您可能想考虑重写,而不是子类 Cuavas。希望有一天这能帮助到别人 刚刚在我的自定义类中添加了一个Add方法 public void Add(UserContro

我已经有了一个自定义的Canvas类,我已经在其中重写了“OnMoseDown”方法。 但现在我还想重写“Children.Add”方法。 但我没有找到任何解决办法

我想在将子对象添加到画布时获取Child.ActualWidth


谢谢。

这可能无法正常工作。在设置其
实际宽度
之前,将添加一个子项,因为该属性在布局阶段设置


根据您的目标,您可能想考虑重写,而不是子类<代码> Cuavas。希望有一天这能帮助到别人

刚刚在我的自定义类中添加了一个Add方法

public void Add(UserControl element)
{
    bool alreadyExist = false;
    element.Uid = element.Name;
    foreach (UIElement child in this.Children)
    {
        if (child.Uid == element.Uid)
        {
            alreadyExist = true;
            this.BringToFront(child);
        }
    }
    if (!alreadyExist)
    {
        this.Children.Add(element);
        this.UpdateLayout();
        double top = (this.ActualHeight - element.ActualHeight) / 2;
        double left = (this.ActualWidth - element.ActualWidth) / 2;
        Canvas.SetLeft(element, left);
        Canvas.SetTop(element, top);
    }
}        

但是当他们接受时,我如何在这个方法中获得添加的子对象呢size@KishoreJangid如果您创建自己的面板类,正如我链接的文章所示,您可以在任何时间点获得您的
InternalChildren
。。。如何在上一个拖动画布中添加