Silverlight and NUI

Preview:

DESCRIPTION

My Silverlight and NUI talk from the recent NT konference in Portorož, Slovenia. In Slovenian language. References: * Camdoodle (http://camdoodle.codeplex.com/) * PuzzleTouch (http://www.puzzletouch.com/) * Silverlight 4, WPF 4 and Windows Phone 7 Multi-Touch Manipulation (http://multitouch.codeplex.com/) * Bug Smash (http://adamkinney.com/labs/bugcamsmash/) * SLAR Toolkit (http://slartoolkit.codeplex.com/)

Citation preview

SILVERLIGHT IN NUI

Andrej Tozon (ANT Andrej Tozon s.p.)

SILVERLIGHT IN NUI

Andrej Tozon (ANT Andrej Tozon s.p.)

PRI 14 MESECIH

PRI ~2 LETIH

PRI ~2,5 LETIH

PRI ~2,5 LETIHPRI ~2 LETIHPRI 14 MESECIH

Telefon Tablica Miška0

5

10

15

20

25

30

CAMDOODLE

SILVERLIGHTINNUI

PUZZLETOUCH

SILVERLIGHT IN NUI

• Touch• Multi-Touch

• Zelo low-level• Knjižnice

• Microsoft Surface Silverlight Manipulations and Interia

• Full-Screen Keyboard• Silverlight 4 – omejeno• Silverlight 5 – poln nabor

• WebCam• Kinect?

SILVERLIGHT: MULTITOUCH

• Podpora je prišla s Silverlight 3

Touch.FrameReported += OnFrameReported;

SILVERLIGHT: MULTITOUCH

private void OnFrameReported(object sender,  TouchFrameEventArgs e) {}

public class TouchFrameEventArgs{ TouchPoint GetPrimaryTouchPoint(UIElement relativeTo);  TouchPointCollection GetTouchPoints(UIElement relativeTo); void SuspendMousePromotionUntilTouchUp(); int Timestamp { get; }}

SILVERLIGHT: MULTITOUCH

public class TouchPoint{    public TouchAction Action { get; } public Point Position { get; }    public Size Size { get; } public TouchDevice TouchDevice { get; }}

public enum TouchAction{ Down, Move, Up}

public class TouchDevice{ public int Id { get; }  public UIElement DirectlyOver { get; }}

DEMO

Microsoft Surface Silverlight Manipulations and Inertia

Multitouch Behaviors

SILVERLIGHT: WEBCAM

public static class CaptureDeviceConfiguration{ static bool AllowedDeviceAccess { get; }    static bool RequestDeviceAccess();    static ReadOnlyCollection<VideoCaptureDevice>  GetAvailableVideoCaptureDevices();    static ReadOnlyCollection<AudioCaptureDevice>  GetAvailableAudioCaptureDevices();    static VideoCaptureDevice GetDefaultVideoCaptureDevice();    static AudioCaptureDevice GetDefaultAudioCaptureDevice();}

SILVERLIGHT: WEBCAM

public class CaptureSource{ VideoCaptureDevice VideoCaptureDevice { get; set; }    AudioCaptureDevice AudioCaptureDevice { get; set; }    CaptureState State { get; }    void Start();    void Stop();    event EventHandler<ExceptionRoutedEventArgs>  CaptureFailed;    void CaptureImageAsync();    event EventHandler<CaptureImageCompletedEventArgs>  CaptureImageCompleted;}

VideoBrush brush = new VideoBrush();brush.SetSource(captureSource);Rectangle.Fill = brush;

SILVERLIGHT: WEBCAM

CompositionTarget.Rendering += CompositionTarget_Rendering;

void CompositionTarget_Rendering(object sender, EventArgs e){    captureSource.CaptureImageAsync();}

void OnCaptureImageCompleted(object sender,  CaptureImageCompletedEventArgs e){ ImageBrush brush = new ImageBrush(); brush.ImageSource = e.Result;    rectangle.Fill = brush;}

POVZETEK

• Naravni uporabniški vmesniki• Silverlight omogoča:

• Podporo (multi) touch aplikacijam• Dostop do video kamere• Dostop do mikrofona

• Za lažjo uporabo posežemo po že izdelanih knjižnicah

• Medtem pa čakamo na podporo za Kinect

POVEZAVE

• Microsoft Surface Manipulations and Inertia Sample for Microsoft Silverlight• http://to3.si/jO8ktN

• Silverlight 4, WPF 4 and Windows Phone 7 Multi-Touch Manipulation• http://multitouch.codeplex.com/

• Bug Smash• http://adamkinney.com/labs/bugcamsmash/

• SLAR Toolkit• http://slartoolkit.codeplex.com/

VPRAŠANJA?Po zaključku predavanja prosim izpolnite vprašalnik.

Vprašalniki bodo poslani na vaš e-naslov, dostopni pa bodo tudi preko profila na spletnem portalu konference. www.ntk.si.

Z izpolnjevanjem le tega pripomorete k izboljšanju konference.

Hvala!

Andrej TozonANT Andrej Tozon s.p.Microsoft MVP: Silverlight

andrej@tozon.info@andrejt

http://tozon.info/blog

Recommended