C# 如何克隆和自定义控件
我可能会遇到这种情况:在堆栈面板中,我想添加一个分隔符,然后添加按钮,然后添加分隔符,然后添加按钮,等等。。。 除某些字段外,分隔符和按钮始终相同。 我不能使用相同的分隔符,因为一个控件可以是另一个控件的唯一子控件。所以我必须定义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”})) 我在谷歌上找到的克隆控件的唯一方法是: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
MyControl copy = XamlReader.Parse(XamlWriter.Save(controlInstance)) as MyControl;
MyControl copy=XamlReader.Parse(XamlWriter.Save(controlInstance))作为MyControl
但是我不喜欢它。为什么我要去Xaml克隆一个控件?没有更好的方法吗?你不必克隆任何东西。只需为分隔符和按钮创建适当的默认样式。为什么您需要克隆对象而不是简单地创建对象的新实例?只定义一次按钮和分隔符,然后重用所有设置这就是发明样式的目的。很好,谢谢!为了完整起见,您是否可以发布一个示例代码作为答案?非常感谢。