// Token: 0x06003864 RID: 14436 RVA: 0x000FC5A8 File Offset: 0x000FA7A8 private static bool PasteXaml(TextEditor This, string pasteXaml) { bool result; if (pasteXaml.Length == 0) { result = false; } else { try { bool useRestrictiveXamlReader = !Clipboard.UseLegacyDangerousClipboardDeserializationMode(); object obj = XamlReader.Load(new XmlTextReader(new StringReader(pasteXaml)), useRestrictiveXamlReader); TextElement textElement = obj as TextElement; result = (textElement != null && TextEditorCopyPaste.PasteTextElement(This, textElement)); } catch (XamlParseException ex) { Invariant.Assert(ex != null); result = false; } } return(result); }
private static bool PasteContentData(TextEditor This, IDataObject dataObject, IDataObject dataObjectToApply, string formatToApply) { if (formatToApply == DataFormats.Bitmap && dataObjectToApply is DataObject && This.AcceptsRichContent && This.Selection is TextSelection && SecurityHelper.CheckUnmanagedCodePermission()) { BitmapSource bitmapSource = TextEditorCopyPaste.GetPasteData(dataObjectToApply, DataFormats.Bitmap) as BitmapSource; if (bitmapSource != null) { MemoryStream data = WpfPayload.SaveImage(bitmapSource, "image/bmp"); dataObjectToApply = new DataObject(); formatToApply = DataFormats.XamlPackage; dataObjectToApply.SetData(DataFormats.XamlPackage, data); } } if (formatToApply == DataFormats.XamlPackage) { if (This.AcceptsRichContent && This.Selection is TextSelection && SecurityHelper.CheckUnmanagedCodePermission()) { object pasteData = TextEditorCopyPaste.GetPasteData(dataObjectToApply, DataFormats.XamlPackage); MemoryStream memoryStream = pasteData as MemoryStream; if (memoryStream != null) { object obj = WpfPayload.LoadElement(memoryStream); if ((obj is Section || obj is Span) && TextEditorCopyPaste.PasteTextElement(This, (TextElement)obj)) { return(true); } if (obj is FrameworkElement) { ((TextSelection)This.Selection).InsertEmbeddedUIElement((FrameworkElement)obj); return(true); } } } dataObjectToApply = dataObject; if (dataObjectToApply.GetDataPresent(DataFormats.Xaml)) { formatToApply = DataFormats.Xaml; } else if (SecurityHelper.CheckUnmanagedCodePermission() && dataObjectToApply.GetDataPresent(DataFormats.Rtf)) { formatToApply = DataFormats.Rtf; } else if (dataObjectToApply.GetDataPresent(DataFormats.UnicodeText)) { formatToApply = DataFormats.UnicodeText; } else if (dataObjectToApply.GetDataPresent(DataFormats.Text)) { formatToApply = DataFormats.Text; } } if (formatToApply == DataFormats.Xaml) { if (This.AcceptsRichContent && This.Selection is TextSelection) { object pasteData2 = TextEditorCopyPaste.GetPasteData(dataObjectToApply, DataFormats.Xaml); if (pasteData2 != null && TextEditorCopyPaste.PasteXaml(This, pasteData2.ToString())) { return(true); } } dataObjectToApply = dataObject; if (SecurityHelper.CheckUnmanagedCodePermission() && dataObjectToApply.GetDataPresent(DataFormats.Rtf)) { formatToApply = DataFormats.Rtf; } else if (dataObjectToApply.GetDataPresent(DataFormats.UnicodeText)) { formatToApply = DataFormats.UnicodeText; } else if (dataObjectToApply.GetDataPresent(DataFormats.Text)) { formatToApply = DataFormats.Text; } } if (formatToApply == DataFormats.Rtf) { if (This.AcceptsRichContent && SecurityHelper.CheckUnmanagedCodePermission()) { object pasteData3 = TextEditorCopyPaste.GetPasteData(dataObjectToApply, DataFormats.Rtf); if (pasteData3 != null) { MemoryStream memoryStream2 = TextEditorCopyPaste.ConvertRtfToXaml(pasteData3.ToString()); if (memoryStream2 != null) { TextElement textElement = WpfPayload.LoadElement(memoryStream2) as TextElement; if ((textElement is Section || textElement is Span) && TextEditorCopyPaste.PasteTextElement(This, textElement)) { return(true); } } } } dataObjectToApply = dataObject; if (dataObjectToApply.GetDataPresent(DataFormats.UnicodeText)) { formatToApply = DataFormats.UnicodeText; } else if (dataObjectToApply.GetDataPresent(DataFormats.Text)) { formatToApply = DataFormats.Text; } } if (formatToApply == DataFormats.UnicodeText) { object pasteData4 = TextEditorCopyPaste.GetPasteData(dataObjectToApply, DataFormats.UnicodeText); if (pasteData4 != null) { return(TextEditorCopyPaste.PastePlainText(This, pasteData4.ToString())); } if (dataObjectToApply.GetDataPresent(DataFormats.Text)) { formatToApply = DataFormats.Text; dataObjectToApply = dataObject; } } if (formatToApply == DataFormats.Text) { object pasteData5 = TextEditorCopyPaste.GetPasteData(dataObjectToApply, DataFormats.Text); if (pasteData5 != null && TextEditorCopyPaste.PastePlainText(This, pasteData5.ToString())) { return(true); } } return(false); }