private async void CopySvgToClipboard() { var svgFileUri = new Uri("ms-appx:///Assets/Test.svg"); var svgFile = await Windows.Storage.StorageFile.GetFileFromApplicationUriAsync(svgFileUri); var svgText = await Windows.Storage.FileIO.ReadTextAsync(svgFile); byte[] bytes = System.Text.Encoding.UTF8.GetBytes(svgText); var stream = new Windows.Storage.Streams.InMemoryRandomAccessStream(); await stream.WriteAsync(bytes.AsBuffer()); stream.Seek(0); var dataPackage = new Windows.ApplicationModel.DataTransfer.DataPackage(); dataPackage.SetData("image/svg+xml", stream); Windows.ApplicationModel.DataTransfer.Clipboard.SetContent(dataPackage); }
private async void Popup_CommandHandler_OfficeClipboard(FlyoutCommand command) { try { MimeType[] mimeTypes = null; if (_lastSelectedBlock != null) { mimeTypes = _editor.GetSupportedExportMimeTypes(_lastSelectedBlock); } if (mimeTypes != null && mimeTypes.Contains(MimeType.OFFICE_CLIPBOARD)) { // export block to a file var localFolder = ApplicationData.Current.LocalFolder.Path; var clipboardPath = System.IO.Path.Combine(localFolder.ToString(), "tmp/clipboard.gvml"); var drawer = new ImageDrawer(_editor.Renderer.DpiX, _editor.Renderer.DpiY); drawer.ImageLoader = UcEditor.ImageLoader; _editor.Export_(_lastSelectedBlock, clipboardPath.ToString(), MimeType.OFFICE_CLIPBOARD, drawer); // read back exported data var clipboardData = File.ReadAllBytes(clipboardPath); var clipboardStream = new MemoryStream(clipboardData); // store the data into clipboard Windows.ApplicationModel.DataTransfer.Clipboard.Clear(); var clipboardContent = new Windows.ApplicationModel.DataTransfer.DataPackage(); clipboardContent.SetData(MimeTypeF.GetTypeName(MimeType.OFFICE_CLIPBOARD), clipboardStream.AsRandomAccessStream()); Windows.ApplicationModel.DataTransfer.Clipboard.SetContent(clipboardContent); } } catch (Exception ex) { MessageDialog msgDialog = new MessageDialog(ex.ToString()); await msgDialog.ShowAsync(); } }