//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>(); }
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); }
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; }
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; } }
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; } }