private void Initialize()
        {
            var grid = new Grid();

            inkPresenter = new InkPresenter();
            inkPresenter.SetValue(Grid.HorizontalAlignmentProperty, HorizontalAlignment.Stretch);
            inkPresenter.SetValue(Grid.VerticalAlignmentProperty, VerticalAlignment.Stretch);
            inkPresenter.Background = new SolidColorBrush(Colors.Transparent);
            grid.Children.Add(inkPresenter);

            inkPresenter.MouseLeftButtonDown += OnMouseDown;
            inkPresenter.MouseMove           += OnMouseMove;
            inkPresenter.MouseLeftButtonUp   += OnMouseUp;
            inkPresenter.LostMouseCapture    += OnMouseLost;

            // get some defaults
            var settings = new ImageConstructionSettings();

            settings.ApplyDefaults();

            StrokeWidth = settings.StrokeWidth.Value;
            StrokeColor = settings.StrokeColor.Value;

            HorizontalContentAlignment = HorizontalAlignment.Stretch;
            VerticalContentAlignment   = VerticalAlignment.Stretch;
            Content = grid;
        }
示例#2
0
        private void Initialize()
        {
            var grid = new Grid();

            inkPresenter = new InkPresenter();
            inkPresenter.ClipToBounds     = true;
            inkPresenter.StrokeCompleted += OnStrokeCompleted;
            inkPresenter.SetValue(Grid.HorizontalAlignmentProperty, HorizontalAlignment.Stretch);
            inkPresenter.SetValue(Grid.VerticalAlignmentProperty, VerticalAlignment.Stretch);
            grid.Children.Add(inkPresenter);

            // get some defaults
            var settings = new ImageConstructionSettings();

            settings.ApplyDefaults();

            StrokeWidth = settings.StrokeWidth.Value;
            StrokeColor = settings.StrokeColor.Value;

            HorizontalContentAlignment = HorizontalAlignment.Stretch;
            VerticalContentAlignment   = VerticalAlignment.Stretch;
            Content = grid;

            IsEnabledChanged += delegate
            {
                inkPresenter.IsInputEnabled = IsEnabled;
            };
        }
        private void Initialize()
        {
            var grid = new Grid();

            inkCanvas = new InkCanvas();
            inkCanvas.SetValue(Grid.HorizontalAlignmentProperty, HorizontalAlignment.Stretch);
            inkCanvas.SetValue(Grid.VerticalAlignmentProperty, VerticalAlignment.Stretch);
            grid.Children.Add(inkCanvas);

            inkPresenter = inkCanvas.InkPresenter;
            inkPresenter.StrokesCollected += (sender, e) => OnStrokeCompleted();
            inkPresenter.InputDeviceTypes  = CoreInputDeviceTypes.Touch | CoreInputDeviceTypes.Pen | CoreInputDeviceTypes.Mouse;

            // get some defaults
            var settings = new ImageConstructionSettings();

            settings.ApplyDefaults();

            StrokeWidth = settings.StrokeWidth.Value;
            StrokeColor = settings.StrokeColor.Value;

            HorizontalContentAlignment = HorizontalAlignment.Stretch;
            VerticalContentAlignment   = VerticalAlignment.Stretch;
            Content = grid;

            IsEnabledChanged += delegate
            {
                inkPresenter.IsInputEnabled = IsEnabled;
            };
        }
        private bool GetImageConstructionArguments(ImageConstructionSettings settings, out NativeSize scale, out NativeRect signatureBounds, out NativeSize imageSize, out float strokeWidth, out NativeColor strokeColor, out NativeColor backgroundColor)
        {
            settings.ApplyDefaults((float)StrokeWidth, StrokeColor);

            if (IsBlank || settings.DesiredSizeOrScale?.IsValid != true)
            {
                scale           = default(NativeSize);
                signatureBounds = default(NativeRect);
                imageSize       = default(NativeSize);
                strokeWidth     = default(float);
                strokeColor     = default(NativeColor);
                backgroundColor = default(NativeColor);

                return(false);
            }

            var sizeOrScale = settings.DesiredSizeOrScale.Value;
            var viewSize    = this.GetSize();

            imageSize = sizeOrScale.GetSize((float)viewSize.Width, (float)viewSize.Height);
            scale     = sizeOrScale.GetScale((float)imageSize.Width, (float)imageSize.Height);

            if (settings.ShouldCrop == true)
            {
                signatureBounds = GetSignatureBounds(settings.Padding.Value);

                if (sizeOrScale.Type == SizeOrScaleType.Size)
                {
                    // if a specific size was set, scale to that
                    var scaleX = imageSize.Width / (float)signatureBounds.Width;
                    var scaleY = imageSize.Height / (float)signatureBounds.Height;
                    if (sizeOrScale.KeepAspectRatio)
                    {
                        scaleX = scaleY = Math.Min((float)scaleX, (float)scaleY);
                    }
                    scale = new NativeSize((float)scaleX, (float)scaleY);
                }
                else if (sizeOrScale.Type == SizeOrScaleType.Scale)
                {
                    imageSize.Width  = signatureBounds.Width * scale.Width;
                    imageSize.Height = signatureBounds.Height * scale.Height;
                }
            }
            else
            {
                signatureBounds = new NativeRect(0, 0, viewSize.Width, viewSize.Height);
            }

            strokeWidth     = settings.StrokeWidth.Value;
            strokeColor     = (NativeColor)settings.StrokeColor;
            backgroundColor = (NativeColor)settings.BackgroundColor;

            return(true);
        }
        private void Initialize()
        {
            inkPresenter = new InkPresenter();
            inkPresenter.ClipToBounds     = true;
            inkPresenter.StrokeCompleted += OnStrokeCompleted;
            inkPresenter.SetValue(Grid.HorizontalAlignmentProperty, Windows.UI.Xaml.HorizontalAlignment.Stretch);
            inkPresenter.SetValue(Grid.VerticalAlignmentProperty, Windows.UI.Xaml.VerticalAlignment.Stretch);
            Children.Add(inkPresenter);

            // get some defaults
            var settings = new ImageConstructionSettings();

            settings.ApplyDefaults();

            StrokeWidth = settings.StrokeWidth.Value;
            StrokeColor = settings.StrokeColor.Value;
        }
示例#6
0
        private void Initialize()
        {
            inkPresenter = new InkPresenter(Context)
            {
                LayoutParameters = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MatchParent, FrameLayout.LayoutParams.MatchParent)
            };
            inkPresenter.StrokeCompleted += OnStrokeCompleted;
            AddView(inkPresenter);

            // get some defaults
            var settings = new ImageConstructionSettings();

            settings.ApplyDefaults();

            StrokeWidth = settings.StrokeWidth.Value;
            StrokeColor = settings.StrokeColor.Value;
        }
示例#7
0
        private void Initialize(bool baseProperties = true)
        {
            inkPresenter = new InkPresenter(Bounds)
            {
                AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight,
            };
            inkPresenter.StrokeCompleted += OnStrokeCompleted;
            AddSubview(inkPresenter);

            // get some defaults
            var settings = new ImageConstructionSettings();

            settings.ApplyDefaults();

            StrokeWidth = settings.StrokeWidth.Value;
            StrokeColor = settings.StrokeColor;
        }