如何在WinRT XAML C#中克隆UIElement?

Xyr*_*oid 6 c# xaml exception windows-runtime uielement

我首先尝试了这种方法,但得到错误"元素已经是另一个元素的孩子"

var objClone = new MyImageControl();
objClone = this;
((Canvas)this.Parent).Children.Add(objClone);
Run Code Online (Sandbox Code Playgroud)

然后我检查这个这个,但的XamlWriter和XamlReader不可在WinRT中.我试图使用MemberwiseClone()但它抛出异常,"不能使用已与其底层RCW分离的COM对象.System.Runtime.InteropServices.InvalidComObjectException" 那么有谁能告诉我如何将画布中的现有UserControl克隆到自身?

Bol*_*glu 1

您可以尝试使用 XamlWriter 和 XamlReader 以外的序列化器来实现链接所描述的相同效果。例如,使用 ServiceStack.Text 将对象 JSON 序列化为字符串,然后从该字符串获取一个新对象并将其添加到父对象中。