private async void BtnSave_Click(object sender, RoutedEventArgs e) { InkStrokeContainer container = new InkStrokeContainer(); foreach (var item in _inkStrokes) { container.AddStrokes(from stroke in item.GetStrokes() select stroke.Clone()); } if (container.GetStrokes().Count > 0) { Windows.Storage.Pickers.FileSavePicker savePicker = new Windows.Storage.Pickers.FileSavePicker(); savePicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.DocumentsLibrary; savePicker.FileTypeChoices.Add("GIF with embedded ISF", new List <string>() { ".gif" }); savePicker.DefaultFileExtension = ".gif"; savePicker.SuggestedFileName = "PaperPencilPen001"; Windows.Storage.StorageFile file = await savePicker.PickSaveFileAsync(); if (file != null) { Windows.Storage.CachedFileManager.DeferUpdates(file); IRandomAccessStream stream = await file.OpenAsync(Windows.Storage.FileAccessMode.ReadWrite); using (IOutputStream outputStream = stream.GetOutputStreamAt(0)) { await container.SaveAsync(outputStream); await outputStream.FlushAsync(); } stream.Dispose(); Windows.Storage.Provider.FileUpdateStatus status = await Windows.Storage.CachedFileManager.CompleteUpdatesAsync(file); if (status == Windows.Storage.Provider.FileUpdateStatus.Complete) { //file saved } else { //not saved } } else { //cancelled } } }
private void InkPresenter_StrokesCollected(InkPresenter sender, InkStrokesCollectedEventArgs args) { var strokes = _inkSynchronizer.BeginDry(); var container = new InkStrokeContainer(); container.AddStrokes(from item in strokes select item.Clone()); _inkStrokes.Add(container); history.Push(_inkStrokes); _inkSynchronizer.EndDry(); DrawingCanvas.Invalidate(); }
private void InkPresenter_StrokesCollected(InkPresenter sender, InkStrokesCollectedEventArgs args) { // Custom drying var strokes = _inkSynchronizer.BeginDry(); var container = new InkStrokeContainer(); var clonedStrokes = from item in strokes select item.Clone(); container.AddStrokes(clonedStrokes); viewModel.AddStroke(container); _inkSynchronizer.EndDry(); drawingCanvas.Invalidate(); if (inkToShapeButton.IsChecked.Value) // Store a copy of the strokes for recognition if button is checked { viewModel.RecognizeStrokes(clonedStrokes); } else { viewModel.StopRecognizingStrokes(); } }