C# 如何克隆和自定义控件

C# 如何克隆和自定义控件,c#,wpf,controls,clone,C#,Wpf,Controls,Clone,我可能会遇到这种情况:在堆栈面板中,我想添加一个分隔符,然后添加按钮,然后添加分隔符,然后添加按钮,等等。。。 除某些字段外,分隔符和按钮始终相同。 我不能使用相同的分隔符,因为一个控件可以是另一个控件的唯一子控件。所以我必须定义sep1按钮1 sep2按钮2 sep3按钮3 我想要的是(伪代码): 分离器sep=新分离器() 按钮,但=新按钮() StackPanel stp=新StackPanel() stp.Add(newseparator().Clone(sep)) Add(newsep

我可能会遇到这种情况:在堆栈面板中,我想添加一个分隔符,然后添加按钮,然后添加分隔符,然后添加按钮,等等。。。 除某些字段外,分隔符和按钮始终相同。 我不能使用相同的分隔符,因为一个控件可以是另一个控件的唯一子控件。所以我必须定义sep1按钮1 sep2按钮2 sep3按钮3

我想要的是(伪代码):

分离器sep=新分离器()

按钮,但=新按钮()

StackPanel stp=新StackPanel()

stp.Add(newseparator().Clone(sep))

Add(newseparator().Clone(按钮{Content=“BT1”}))

stp.Add(newseparator().Clone(sep))

Add(newseparator().Clone(按钮{Content=“BT2”}))

我在谷歌上找到的克隆控件的唯一方法是:

MyControl copy = XamlReader.Parse(XamlWriter.Save(controlInstance)) as MyControl;
MyControl copy=XamlReader.Parse(XamlWriter.Save(controlInstance))作为MyControl


但是我不喜欢它。为什么我要去Xaml克隆一个控件?没有更好的方法吗?

你不必克隆任何东西。只需为分隔符和按钮创建适当的默认样式。为什么您需要克隆对象而不是简单地创建对象的新实例?只定义一次按钮和分隔符,然后重用所有设置这就是发明样式的目的。很好,谢谢!为了完整起见,您是否可以发布一个示例代码作为答案?非常感谢。