嗨,我想克隆(浅克隆)自定义 UserControl,例如:
ucButton uc;
ucButton uc2;
uc = uc2;
当我这样做时,编译器希望我也从画布中删除旧实例(uc)。
使用:
Canvas1.Children.Add(uc)
Canvas2.Children.Add(uc2)
有什么建议么?
提前致谢
可悲的是,我不认为有一种简单的方法可以实现这一点:如果您的用户控件包含其他引用类型,它们应该通用,还是应该被复制?
此外,您将无法获得 UserControl 上附加依赖项属性的完整列表。
Personnaly,我会将我的用户控件封装在我的 xaml 资源中的 DataTemplate 中,并根据需要从DataTemplate创建用户控件的新实例。
<DataTemplate x:Key="ucButton">
<myControls:ucButton ... />
</DataTemplate>
在您的代码中,从资源中获取模板,然后加载内容。
var uc = template.LoadContent() as UserControl;
var uc2 = template.LoadContent() as UserControl;
我知道这不完全是你想要做的。如果不能从 xaml 实例化,我的解决方案将不起作用。