Пример #1
0
        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);
        }
Пример #2
0
        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);
            });
        }
Пример #3
0
        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);
        }