private async void OnStencil(string mode) { if (_viewModel.EquirectangularStencil == null) { _viewModel.EquirectangularStencil = await EquirectangularStencil.CreateAsync(InkCanvasView).ConfigureAwait(false); } switch (mode) { case "LeftRightLines": _viewModel.EquirectangularStencil.Mode = EquirectangularStencilMode.LeftRightLines; break; case "FrontBackLines": _viewModel.EquirectangularStencil.Mode = EquirectangularStencilMode.FrontBackLines; break; case "VerticalLines": _viewModel.EquirectangularStencil.Mode = EquirectangularStencilMode.VerticalLines; break; default: _viewModel.EquirectangularStencil.Mode = EquirectangularStencilMode.None; System.Diagnostics.Debug.WriteLine($"Unknown stencil mode: {mode}"); break; } VisualStateManager.GoToState(LayoutRoot, "Stencil" + mode); InkCanvasView.InvalidateCanvas(false, true); }
private void LoadInkStrokesFromInkLayer(XInkStroke[] inkLayer, InkCanvasView inkCanvasView) { foreach (var stroke in inkLayer) { if (stroke.DrawingAttributes.Color.A == 0) { stroke.DrawingAttributes.Color = Xamarin.Forms.Color.FromRgba(stroke.DrawingAttributes.Color.R, stroke.DrawingAttributes.Color.G, stroke.DrawingAttributes.Color.B, 255); } stroke.UpdateBounds(); } Dispatcher.BeginInvokeOnMainThread(delegate { //inkCanvasView.BackgroundColor = sketchData.BackgroundColor; //InkCanvas.CanvasSize = new Size(sketchData.Width, sketchData.Height); inkCanvasView.InkPresenter.StrokeContainer.Clear(); inkCanvasView.InkPresenter.StrokeContainer.Add(inkLayer); inkCanvasView.InvalidateCanvas(false, true); }); }
private void OnStencil(string mode) { if (_viewModel.EquirectangularStencil == null) { _viewModel.EquirectangularStencil = new EquirectangularStencil(InkCanvasView) { Apex = _twoPointStencil.GetApex(InkCanvasView.CanvasHeight) }; } if (Enum.TryParse(mode, out EquirectangularStencilMode stencilMode)) { _viewModel.EquirectangularStencil.Mode = stencilMode; } else { _viewModel.EquirectangularStencil.Mode = EquirectangularStencilMode.None; System.Diagnostics.Debug.WriteLine($"Unknown stencil mode: {mode}"); } VisualStateManager.GoToState(LayoutRoot, "Stencil" + mode); InkCanvasView.InvalidateCanvas(false, true); }