我发现在将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>
}