WPF如何正确序列化UIElement?

时间:2014-12-08 19:51:58

标签: c# wpf xaml

我发现在将WPF InlineUIContainer复制到剪贴板时,其UIElement(例如Checkbox)被错误地转换为Run。根据此MSDN线程,将删除非图像UIElements。

正确复制多个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>
}

0 个答案:

没有答案