public void DrawLine(Pen pen, Point startPoint, Point endPoint) { canvas.DrawLine((float)startPoint.X, (float)startPoint.Y, (float)endPoint.X, (float)endPoint.Y, new Paint { Color = pen.Brush.Color.ToAndroid(), StrokeWidth = (float)pen.Thickness }); }
public void DrawText(FormattedText formattedText, Point point, Rect?clipRect) { var paint = new Paint(); paint.TextSize = formattedText.FontSize; paint.Color = formattedText.Brush.Color.ToAndroid(); paint.AntiAlias = true; var offset = -paint.Ascent(); canvas.DrawText(formattedText.Text, (float)point.X, (float)(point.Y + offset), paint); }
private IObservable <PointerInput> GetPointerObservable() { var down = Observable.FromEventPattern <ButtonPressEventHandler, ButtonPressEventArgs>( ev => widget.ButtonPressEvent += ev, ev => widget.ButtonPressEvent -= ev).Select(ev => { var x = ev.EventArgs.Event.X; var y = ev.EventArgs.Event.Y; var point = new Point(x, y); return(new PointerInput { Point = point, PrimaryButtonStatus = PointerStatus.Down }); }); var up = Observable.FromEventPattern <ButtonReleaseEventHandler, ButtonReleaseEventArgs>( ev => widget.ButtonReleaseEvent += ev, ev => widget.ButtonReleaseEvent -= ev).Select(ev => { var x = ev.EventArgs.Event.X; var y = ev.EventArgs.Event.Y; var point = new Point(x, y); return(new PointerInput { Point = point, PrimaryButtonStatus = PointerStatus.Up }); }); var move = Observable.FromEventPattern <MotionNotifyEventHandler, MotionNotifyEventArgs>( ev => widget.MotionNotifyEvent += ev, ev => widget.MotionNotifyEvent -= ev).Select(ev => { var x = ev.EventArgs.Event.X; var y = ev.EventArgs.Event.Y; var point = new Point(x, y); return(new PointerInput { Point = point, PrimaryButtonStatus = PointerStatus.Released }); }); return(down.Merge(up).Merge(move)); }
private static IObservable <PointerInput> GetPointerObservable(IInputElement element) { var down = Observable.FromEventPattern <MouseButtonEventHandler, MouseEventArgs>( ev => element.PreviewMouseLeftButtonDown += ev, ev => element.PreviewMouseLeftButtonDown -= ev) .Select(pattern => { var position = pattern.EventArgs.GetPosition(element); var point = new Point(position.X, position.Y); return(new PointerInput { Point = point, PrimaryButtonStatus = PointerStatus.Down }); }); var up = Observable.FromEventPattern <MouseButtonEventHandler, MouseEventArgs>( ev => element.PreviewMouseLeftButtonUp += ev, ev => element.PreviewMouseLeftButtonUp -= ev) .Select(pattern => { var position = pattern.EventArgs.GetPosition(element); var point = new Point(position.X, position.Y); return(new PointerInput { Point = point, PrimaryButtonStatus = PointerStatus.Up }); }); var hover = Observable.FromEventPattern <MouseEventHandler, MouseEventArgs>( ev => element.PreviewMouseMove += ev, ev => element.PreviewMouseMove -= ev) .Select(pattern => { var position = pattern.EventArgs.GetPosition(element); var point = new Point(position.X, position.Y); return(new PointerInput { Point = point, PrimaryButtonStatus = PointerStatus.Released }); }); return(down.Merge(up).Merge(hover)); }
private IObservable <PointerInput> GetPointerObservable() { var pressed = Observable.FromEventPattern <PointerEventHandler, PointerRoutedEventArgs>( ev => control.PointerPressed += ev, ev => control.PointerPressed -= ev).Select(pattern => { var pointerPoint = pattern.EventArgs.GetCurrentPoint(control); var point1 = new Point(pointerPoint.Position.X, pointerPoint.Position.Y); return(new PointerInput { Point = point1, PrimaryButtonStatus = PointerStatus.Down }); }); var released = Observable.FromEventPattern <PointerEventHandler, PointerRoutedEventArgs>( ev => control.PointerReleased += ev, ev => control.PointerReleased -= ev).Select(pattern => { var pointerPoint = pattern.EventArgs.GetCurrentPoint(control); var point = new Point(pointerPoint.Position.X, pointerPoint.Position.Y); return(new PointerInput { Point = point, PrimaryButtonStatus = PointerStatus.Up }); }); var moved = Observable.FromEventPattern <PointerEventHandler, PointerRoutedEventArgs>( ev => control.PointerMoved += ev, ev => control.PointerMoved -= ev).Select(pattern => { var pointerPoint1 = pattern.EventArgs.GetCurrentPoint(control); var point = new Point(pointerPoint1.Position.X, pointerPoint1.Position.Y); return(new PointerInput { Point = point, PrimaryButtonStatus = PointerStatus.Released }); }); return(pressed.Merge(released).Merge(moved)); }
public static PointF ToAndroid(this OmniGui.Geometry.Point point) { return(new PointF((int)point.X, (int)point.Y)); }