Touch
Touch is the most common input system on mobile devices. Pointers are points on the device screen corresponding to finger touches. Devices with multi-touch functionality support multiple simultaneous pointers.
PointerDispatcher
The PointerDispatcher
is a class used to track pointer events.
public abstract class PointerDispatcher
{
public IList<PointerPoint> Points { get; }
public event EventHandler<PointerEventArgs> PointerDown;
public event EventHandler<PointerEventArgs> PointerUp;
public event EventHandler<PointerEventArgs> PointerMove;
}
Points
property gets a list of points detected inside the surface at the current frame.
PointerDown
, PointerUp
and PointerMove
events are available to track touch and pointer points.
PointerPoint
The PointerPoint class give the following information:
Property | Description |
---|---|
Id | A number that is uniquely associated to this touch. It is usually given by the underliying platform. |
Position | The pointer position in screen coordinates |
State | Get the current pointer state. See Button States for more information. |
Using PointerDispatcher
The PointerDispatcher
can be found within the Display
or Surface
objects. The following sample code can be used to access the pointer dispatcher from a Component
or Service
.
[BindService]
protected GraphicsPresenter graphicsPresenter;
protected override void Update(TimeSpan time)
{
PointerDispatcher pointerDispatcher = this.graphicsPresenter.FocusedDisplay?.PointerDispatcher;
if (keyboardDispatcher == null)
{
return;
}
foreach (PointerPoint p in keyboardDispatcher.Points)
{
if (p.State == ButtonState.Pressing)
{
// Do something
}
}
}