C# WPF如何正确序列化UIElement?

C# WPF如何正确序列化UIElement?,c#,wpf,xaml,C#,Wpf,Xaml,我发现,当将WPF InlineUIContainer复制到剪贴板时,其UIElement(例如复选框)被错误地转换为运行。每个线程都会删除非图像元素 正确复制多个UIElement XAML的代码是什么,这样就可以将它们粘贴到任何WPF RichTextBox中?(用户可以 这是一个可调试的代码段。将RichTextBox添加到xaml并将其命名为myRichTextBox public MainWindow() { InitializeComponent(); DataObj

我发现,当将WPF InlineUIContainer复制到剪贴板时,其UIElement(例如复选框)被错误地转换为运行。每个线程都会删除非图像元素

正确复制多个UIElement XAML的代码是什么,这样就可以将它们粘贴到任何WPF RichTextBox中?(用户可以

这是一个可调试的代码段。将RichTextBox添加到xaml并将其命名为myRichTextBox

public MainWindow()
{
    InitializeComponent();
    DataObject.AddCopyingHandler(myRichTextBox, onCopy);
    DataObject.AddPastingHandler(myRichTextBox, onPaste);
}

private void onCopy(object sender, DataObjectCopyingEventArgs e)
{
    Clipboard.SetData(DataFormats.Xaml, e.DataObject.GetData(DataFormats.Xaml)); //Saved as <Checkbox>
    e.Handled = true;
    e.CancelCommand();
}

private void onPaste(object sender, DataObjectPastingEventArgs e)
{
    object xaml = Clipboard.GetData(DataFormats.Xaml); //Loaded as <Run>
}
public主窗口()
{
初始化组件();
AddCopyingHandler(myRichTextBox,onCopy);
AddPastingHandler(myRichTextBox,onPaste);
}
私有void onCopy(对象发送方、DataObjectCopyingEventArgs e)
{
剪贴板.SetData(DataFormats.Xaml,e.DataObject.GetData(DataFormats.Xaml));//另存为
e、 已处理=正确;
e、 取消命令();
}
私有void onPaste(对象发送方、DataObjectPastingEventArgs e)
{
object xaml=Clipboard.GetData(DataFormats.xaml);//加载为
}

你不应该这样做。你真的应该把足够的状态复制到剪贴板上,然后根据需要重新创建/移动它们。丹尼尔,我不明白你的意思。请详细说明?
ui元素不能像那样移动。有很多与它们相关的信息和无数的引用。在WPF Richtextbox中,我需要能够剪切粘贴复选框和文本框。问题是,剪贴板在运行时粘贴了所有复选框和文本框。如果您有解决方案或解决方法,请共享您的代码。