Exemplo n.º 1
0
        //CTOR
        public InkInputControl()
        {
            //Initialize XAML
            this.InitializeComponent();

            //Create a new InkDrawingAttributes instance
            m_inkAttr = new InkDrawingAttributes();
            //Set firt to curve to true to get nice Bezier curves
            m_inkAttr.FitToCurve = true;
            //We ignore the presuer as our custom ink renderer does not know how to render it.
            m_inkAttr.IgnorePressure = true;
            //Set the default ink rendering size to 1.0
            m_inkAttr.Size = new Size(1.0, 1.0);
            //Set the defualt ink pen tip to circle
            m_inkAttr.PenTip = PenTipShape.Circle;
            //Set the default ink color to black
            m_inkAttr.Color = Windows.UI.Colors.Black;

            //Create a new Ink Manager instance
            m_inkMan = new InkManager();
            //Set the default ink rendering attributes
            m_inkMan.SetDefaultDrawingAttributes(m_inkAttr);

            //Create a new Ink Renderer instance using the control's inkCanvas object as the target
            m_renderer = new InkRenderer(this.inkCanvas);
            m_renderer.UseActiveInkColor = false;

            //Create an empty list for CanvaImage objects
            m_canvasImages = new List <CanvasImage>();
        }
Exemplo n.º 2
0
        void Canvas_PointerPressed(object sender, PointerRoutedEventArgs e)
        {
            if (DrawingTool != "Eraser")
            {
                Window.Current.CoreWindow.PointerCursor = new CoreCursor(CoreCursorType.Cross, 1);
            }
            else
            {
                Window.Current.CoreWindow.PointerCursor = new CoreCursor(CoreCursorType.UniversalNo, 1);
            }
            Canvas     canvas     = sender as Canvas;
            InkManager inkManager = MedcialInkManager;

            switch (DrawingTool)
            {
            case "Pencil":
            {
                var MyDrawingAttributes = new InkDrawingAttributes();
                MyDrawingAttributes.Size       = new Size(StrokeThickness, StrokeThickness);
                MyDrawingAttributes.Color      = BorderColor;
                MyDrawingAttributes.FitToCurve = true;
                inkManager.SetDefaultDrawingAttributes(MyDrawingAttributes);

                PreviousContactPoint = e.GetCurrentPoint(canvas).Position;
                if (e.GetCurrentPoint(canvas).Properties.IsLeftButtonPressed)
                {
                    // Pass the pointer information to the InkManager.
                    inkManager.ProcessPointerDown(e.GetCurrentPoint(canvas));
                    PenID     = e.GetCurrentPoint(canvas).PointerId;
                    e.Handled = true;
                }
            }
            break;

            case "Eraser":
            {
                Window.Current.CoreWindow.PointerCursor = new CoreCursor(CoreCursorType.UniversalNo, 1);
                StartPoint             = e.GetCurrentPoint(canvas).Position;
                Pencil                 = new Polyline();
                Pencil.Stroke          = new SolidColorBrush(Colors.White);
                Pencil.StrokeThickness = 10;
                canvas.Children.Add(Pencil);
            }
            break;

            default:
                break;
            }
        }
        public MainPage()
        {
            this.InitializeComponent();

            // Check if there's a pen among the pointer input devices
            foreach (PointerDevice device in PointerDevice.GetPointerDevices())
            {
                hasPen |= device.PointerDeviceType == PointerDeviceType.Pen;
            }

            // Default drawing attributes
            inkDrawingAttributes.Color = Colors.Blue;
            inkDrawingAttributes.Size  = new Size(6, 6);
            inkManager.SetDefaultDrawingAttributes(inkDrawingAttributes);
        }
Exemplo n.º 4
0
        public InkPage()
        {
            InitializeComponent();

            thisView = ApplicationView.GetForCurrentView();
            if (thisView != null)
            {
                thisView.VisibleBoundsChanged += thisView_VisibleBoundsChanged;
            }

            navigationHelper = new NavigationHelper(this);

            drawingAttributes       = new InkDrawingAttributes();
            drawingAttributes.Color = coffeeColor;
            double penSize = 3.0;

            drawingAttributes.Size           = new Size(penSize, penSize);
            drawingAttributes.IgnorePressure = true;
            drawingAttributes.FitToCurve     = true;

            try
            {
                inkManager = new InkManager();
                inkManager.SetDefaultDrawingAttributes(drawingAttributes);
                renderer = new XamlInkRenderer(inkCanvas);
                renderer.Clear();
            }
            catch (Exception ex)
            {
                App.ShowMessage(ex.ToString(), true);
                if (Frame != null && Frame.CanGoBack)
                {
                    Frame.GoBack();
                }
            }

            inkCanvas.PointerPressed  += new PointerEventHandler(InkCanvas_PointerPressed);
            inkCanvas.PointerMoved    += new PointerEventHandler(InkCanvas_PointerMoved);
            inkCanvas.PointerReleased += new PointerEventHandler(InkCanvas_PointerReleased);
            inkCanvas.PointerExited   += new PointerEventHandler(InkCanvas_PointerReleased);
        }
        public MainPage()
        {
            this.InitializeComponent();
            slider1.Value     = STROKETHICKNESS * 100;
            PressureSensitive = false;
            // Add pointer event handlers to the Canvas object.
            InkCanvas.PointerPressed  += new PointerEventHandler(InkCanvas_PointerPressed);
            InkCanvas.PointerMoved    += new PointerEventHandler(InkCanvas_PointerMoved);
            InkCanvas.PointerReleased += new PointerEventHandler(InkCanvas_PointerReleased);
            InkCanvas.PointerExited   += new PointerEventHandler(InkCanvas_PointerReleased);
            list              = new List <TouchData>(1000);
            brush             = new SolidColorBrush(_strokeColor);
            this._unixTime    = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
            ClearButton.Width = InkCanvas.Width;
            SaveButton.Width  = InkCanvas.Width;

            inkManager.SetDefaultDrawingAttributes(new InkDrawingAttributes {
                Color = _strokeColor, FitToCurve = false, Size = new Size(STROKETHICKNESS, STROKETHICKNESS), IgnorePressure = true
            });
            X1            = 600;
            slider2.Value = X1;
            Y1            = 200;
            slider3.Value = Y1;
        }
Exemplo n.º 6
0
 public Drawable()
 {
     inkDrawingAttributes.Color = Colors.Black;
     inkDrawingAttributes.Size  = new Size(3, 3);
     inkManager.SetDefaultDrawingAttributes(inkDrawingAttributes);
 }
        void  canvas_PointerPressed(object sender, PointerRoutedEventArgs e)
        {
            if (DrawingTool != "Eraser")
            {
                Window.Current.CoreWindow.PointerCursor = new CoreCursor(CoreCursorType.Cross, 1);
            }
            else
            {
                Window.Current.CoreWindow.PointerCursor = new CoreCursor(CoreCursorType.UniversalNo, 1);
            }

            switch (DrawingTool)
            {
            //all events are working on canvas.. we will be collecting points to draw on writablebitmap also.
            case "Line":
            {
                NewLine    = new Line();
                NewLine.X1 = e.GetCurrentPoint(canvas).Position.X;
                NewLine.Y1 = e.GetCurrentPoint(canvas).Position.Y;
                lineX1     = e.GetCurrentPoint(canvas).Position.X;
                lineY1     = e.GetCurrentPoint(canvas).Position.Y;
                NewLine.X2 = NewLine.X1 + 1;
                NewLine.Y2 = NewLine.Y1 + 1;
                NewLine.StrokeThickness = StrokeThickness;
                NewLine.Stroke          = new SolidColorBrush(BorderColor);
                canvas.Children.Add(NewLine);
            }
            break;

            case "Pencil":
            {
                /* Old Code
                 * StartPoint = e.GetCurrentPoint(canvas).Position;
                 * Pencil = new Polyline();
                 * Pencil.Stroke = new SolidColorBrush(BorderColor);
                 * Pencil.StrokeThickness = StrokeThickness;
                 * canvas.Children.Add(Pencil);
                 */

                var MyDrawingAttributes = new InkDrawingAttributes();
                MyDrawingAttributes.Size       = new Size(StrokeThickness, StrokeThickness);
                MyDrawingAttributes.Color      = BorderColor;
                MyDrawingAttributes.FitToCurve = true;
                MyInkManager.SetDefaultDrawingAttributes(MyDrawingAttributes);

                PreviousContactPoint = e.GetCurrentPoint(canvas).Position;
                //PointerDeviceType pointerDevType = e.Pointer.PointerDeviceType;  to identify the pointer device
                if (e.GetCurrentPoint(canvas).Properties.IsLeftButtonPressed)
                {
                    // Pass the pointer information to the InkManager.
                    MyInkManager.ProcessPointerDown(e.GetCurrentPoint(canvas));
                    PenID     = e.GetCurrentPoint(canvas).PointerId;
                    e.Handled = true;
                }
            }
            break;

            case "Rectagle":
            {
                NewRectangle                 = new Rectangle();
                X1                           = e.GetCurrentPoint(canvas).Position.X;
                Y1                           = e.GetCurrentPoint(canvas).Position.Y;
                X2                           = X1;
                Y2                           = Y1;
                NewRectangle.Width           = X2 - X1;
                NewRectangle.Height          = Y2 - Y1;
                rectX1                       = X1;
                rectY1                       = Y1;
                NewRectangle.StrokeThickness = StrokeThickness;
                NewRectangle.Stroke          = new SolidColorBrush(BorderColor);
                // NewRectangle.Fill = new SolidColorBrush(FillColor);
                canvas.Children.Add(NewRectangle);
            }
            break;

            case "Ellipse":
            {
                NewEllipse                 = new Ellipse();
                X1                         = e.GetCurrentPoint(canvas).Position.X;
                Y1                         = e.GetCurrentPoint(canvas).Position.Y;
                X2                         = X1;
                Y2                         = Y1;
                elipX1                     = X1;
                elipY1                     = Y1;
                NewEllipse.Width           = X2 - X1;
                NewEllipse.Height          = Y2 - Y1;
                NewEllipse.StrokeThickness = StrokeThickness;
                NewEllipse.Stroke          = new SolidColorBrush(BorderColor);
                //NewEllipse.Fill = new SolidColorBrush(FillColor);
                canvas.Children.Add(NewEllipse);
            }
            break;

            case "Eraser":
            {
                Window.Current.CoreWindow.PointerCursor = new CoreCursor(CoreCursorType.UniversalNo, 1);
                StartPoint             = e.GetCurrentPoint(canvas).Position;
                Pencil                 = new Polyline();
                Pencil.Stroke          = new SolidColorBrush(Colors.Wheat);
                Pencil.StrokeThickness = 10;
                canvas.Children.Add(Pencil);
            }
            break;

            default:
                break;
            }
        }
Exemplo n.º 8
0
        void canvas_PointerPressed(object sender, PointerRoutedEventArgs e)
        {
            if (DrawingTool != "Eraser")
            {
                Window.Current.CoreWindow.PointerCursor = new CoreCursor(CoreCursorType.Cross, 1);
            }
            else
            {
                Window.Current.CoreWindow.PointerCursor = new CoreCursor(CoreCursorType.UniversalNo, 1);
            }

            switch (DrawingTool)
            {
            case "Line":
            {
                NewLine    = new Line();
                NewLine.X1 = e.GetCurrentPoint(canvas).Position.X;
                NewLine.Y1 = e.GetCurrentPoint(canvas).Position.Y;
                NewLine.X2 = NewLine.X1 + 1;
                NewLine.Y2 = NewLine.Y1 + 1;
                NewLine.StrokeThickness = StrokeThickness;
                NewLine.Stroke          = new SolidColorBrush(BorderColor);
                canvas.Children.Add(NewLine);
            }
            break;

            case "Pencil":
            {
                var MyDrawingAttributes = new InkDrawingAttributes();
                MyDrawingAttributes.Size       = new Size(StrokeThickness, StrokeThickness);
                MyDrawingAttributes.Color      = BorderColor;
                MyDrawingAttributes.FitToCurve = true;
                MyInkManager.SetDefaultDrawingAttributes(MyDrawingAttributes);

                PreviousContactPoint = e.GetCurrentPoint(canvas).Position;
                //PointerDeviceType pointerDevType = e.Pointer.PointerDeviceType;  to identify the pointer device
                if (e.GetCurrentPoint(canvas).Properties.IsLeftButtonPressed)
                {
                    // Pass the pointer information to the InkManager.
                    MyInkManager.ProcessPointerDown(e.GetCurrentPoint(canvas));
                    PenID     = e.GetCurrentPoint(canvas).PointerId;
                    e.Handled = true;
                }
            }
            break;

            case "Rectagle":
            {
                NewRectangle                 = new Rectangle();
                X1                           = e.GetCurrentPoint(canvas).Position.X;
                Y1                           = e.GetCurrentPoint(canvas).Position.Y;
                X2                           = X1;
                Y2                           = Y1;
                NewRectangle.Width           = X2 - X1;
                NewRectangle.Height          = Y2 - Y1;
                NewRectangle.StrokeThickness = StrokeThickness;
                NewRectangle.Stroke          = new SolidColorBrush(BorderColor);
                NewRectangle.Fill            = new SolidColorBrush(FillColor);
                canvas.Children.Add(NewRectangle);
            }
            break;

            case "Ellipse":
            {
                NewEllipse                 = new Ellipse();
                X1                         = e.GetCurrentPoint(canvas).Position.X;
                Y1                         = e.GetCurrentPoint(canvas).Position.Y;
                X2                         = X1;
                Y2                         = Y1;
                NewEllipse.Width           = X2 - X1;
                NewEllipse.Height          = Y2 - Y1;
                NewEllipse.StrokeThickness = StrokeThickness;
                NewEllipse.Stroke          = new SolidColorBrush(BorderColor);
                NewEllipse.Fill            = new SolidColorBrush(FillColor);
                canvas.Children.Add(NewEllipse);
            }
            break;

            case "Eraser":
            {
                var MyDrawingAttributes = new InkDrawingAttributes();
                MyDrawingAttributes.Size       = new Size(10, 10);
                MyDrawingAttributes.Color      = Colors.White;
                MyDrawingAttributes.FitToCurve = true;
                MyInkManager.SetDefaultDrawingAttributes(MyDrawingAttributes);

                PreviousContactPoint = e.GetCurrentPoint(canvas).Position;
                //PointerDeviceType pointerDevType = e.Pointer.PointerDeviceType;  to identify the pointer device
                if (e.GetCurrentPoint(canvas).Properties.IsLeftButtonPressed)
                {
                    // Pass the pointer information to the InkManager.
                    MyInkManager.ProcessPointerDown(e.GetCurrentPoint(canvas));
                    PenID     = e.GetCurrentPoint(canvas).PointerId;
                    e.Handled = true;
                }
            }
            break;

            default:
                break;
            }
        }