Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel,...

74
Tablet PC Edition Entwickeln für den Tablet Entwickeln für den Tablet PC PC Das Microsoft Tablet PC Platform SDK Das Microsoft Tablet PC Platform SDK Frank Prengel Frank Prengel , < , < [email protected] [email protected] > > Technologieberater Technologieberater .NET Strategy & Developer Group .NET Strategy & Developer Group Microsoft Deutschland GmbH Microsoft Deutschland GmbH

Transcript of Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel,...

Page 1: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Entwickeln für den Tablet Entwickeln für den Tablet PCPCDas Microsoft Tablet PC Platform SDKDas Microsoft Tablet PC Platform SDK

Frank PrengelFrank Prengel, <, <[email protected]@microsoft.com>>TechnologieberaterTechnologieberater.NET Strategy & Developer Group.NET Strategy & Developer GroupMicrosoft Deutschland GmbHMicrosoft Deutschland GmbH

Page 2: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

AgendaAgenda

• Tablet PC: Hardware & SoftwareTablet PC: Hardware & Software

• Tablet-FunktionalitätTablet-Funktionalität• StifteingabeStifteingabe• Digitale TinteDigitale Tinte• SchrifterkennungSchrifterkennung

• Entwickeln für den Tablet PCEntwickeln für den Tablet PC• Das SDK im ÜberblickDas SDK im Überblick• Managed LibrariesManaged Libraries• Design-RichtlinienDesign-Richtlinien

• ZusammenfassungZusammenfassung

Page 3: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

... und ganz wichtig:... und ganz wichtig:

• Input erbeten!Input erbeten!• Ihre IdeenIhre Ideen• Ihre MeinungenIhre Meinungen• Ihre VorstellungenIhre Vorstellungen• Ihre WünscheIhre Wünsche• Ihre KritikIhre Kritik

Page 4: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Back to the FutureBack to the Future

• Der Tablet PC hat viele Vorgänger ...Der Tablet PC hat viele Vorgänger ...

Page 5: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Was Was haben wir gelernt? wir gelernt?

You can´t railroad before it´s railroading

time.

Robert Heinlein

Page 6: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

2002 – der Tablet PC2002 – der Tablet PC

• Die gewohnte PC-Infrastruktur: Windows XPDie gewohnte PC-Infrastruktur: Windows XP

• Die Mobilität eines Sub-NotebooksDie Mobilität eines Sub-Notebooks

• Die Flexibilität von Stift + PapierDie Flexibilität von Stift + Papier

Page 7: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

AgendaAgenda

• Tablet PC: Hardware & SoftwareTablet PC: Hardware & Software

• Tablet-FunktionalitätTablet-Funktionalität• StifteingabeStifteingabe• Digitale TinteDigitale Tinte• SchrifterkennungSchrifterkennung

• Entwickeln für den Tablet PCEntwickeln für den Tablet PC• Das SDK im ÜberblickDas SDK im Überblick• Managed LibrariesManaged Libraries• Design-RichtlinienDesign-Richtlinien

• ZusammenfassungZusammenfassung

Page 8: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Hardware (1/2)Hardware (1/2)

• Elektromagnetischer DigitizerElektromagnetischer Digitizer

•unterunter dem LCD dem LCD•kabelloser Stiftkabelloser Stift•erkennt "hovering"erkennt "hovering"•kann Neigung & kann Neigung & Rotation erkennenRotation erkennen•Abtastrate > 100 HzAbtastrate > 100 Hz•Auflösung > 600 dpiAuflösung > 600 dpi

Page 9: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Hardware (2/2)Hardware (2/2)

• Tablet-ButtonsTablet-Buttons• Ersatz für CTRL+ALT+DELErsatz für CTRL+ALT+DEL• UP, DOWN, ENTER, ESCAPEUP, DOWN, ENTER, ESCAPE

• "Grab and go""Grab and go"• zuverlässiges Hotpluggingzuverlässiges Hotplugging

• Landscape- und Portrait-Darstellung ohne Landscape- und Portrait-Darstellung ohne RebootReboot

• "Aufwachen" aus dem Stand-By-Modus < "Aufwachen" aus dem Stand-By-Modus < 3 Sek.3 Sek.

• Legacy-freeLegacy-free• kein PS/2, RS232, LPT, ...kein PS/2, RS232, LPT, ...• USB, Firewire; evtl. (W)LAN, Bluetooth, ...USB, Firewire; evtl. (W)LAN, Bluetooth, ...

Page 10: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Software (1/2)Software (1/2)

• Betriebssystem:Betriebssystem:• Microsoft Windows XP ProfessionalMicrosoft Windows XP Professional• Windows XP Service Pack 1Windows XP Service Pack 1• .NET Framework 1.0 SP2.NET Framework 1.0 SP2• Tablet PC ComponentsTablet PC Components

Windows XP Professional Service

Pack 1

Tablet PCCompo-nents

Page 11: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Software (2/2)Software (2/2)

• Tablet-spezifische Software:Tablet-spezifische Software:• StifteingabeStifteingabe• Ink-SteuerelementeInk-Steuerelemente• Gesten-, Schrift- und Gesten-, Schrift- und

SpracherkennungSpracherkennung• Input PanelInput Panel• Windows JournalWindows Journal• Sticky NotesSticky Notes• Ink BallInk Ball

• außerdem verfügbar:außerdem verfügbar:• Microsoft Office XP Pack for Tablet PC Microsoft Office XP Pack for Tablet PC

Snippet Tool

Page 12: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

AgendaAgenda

• Tablet PC: Hardware & SoftwareTablet PC: Hardware & Software

• Tablet-FunktionalitätTablet-Funktionalität• StifteingabeStifteingabe• Digitale TinteDigitale Tinte• SchrifterkennungSchrifterkennung

• Entwickeln für den Tablet PCEntwickeln für den Tablet PC• Das SDK im ÜberblickDas SDK im Überblick• Managed LibrariesManaged Libraries• Design-RichtlinienDesign-Richtlinien

• ZusammenfassungZusammenfassung

Page 13: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

ArchitekturArchitektur

• ... im Überblick:... im Überblick:

Gestures Ink Recognition

Kernel Mode

User Mode

API / Run-Time Interfaces

Recognizers Microsoft (US, JPN, etc.)

Gestures, Shapes OthersMouse

DriverHID

HID MiniDriver

CustomDriver

• Interaktion mit Hardware nur über Interaktion mit Hardware nur über Gesture-KomponentenGesture-Komponenten

Page 14: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Tablet Input SubsystemTablet Input Subsystem

• Anwendungen erhalten Pen-Input-Daten Anwendungen erhalten Pen-Input-Daten durch Shared Memory Queue (durch Shared Memory Queue (nichtnicht durch durch Windows Messages)Windows Messages)

HID InputDevice

HID InputDevice

* WISP = Windows Ink Services for Pen

Page 15: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

GestenGesten

• System GesturesSystem Gestures• Hover, Tap, Double-Tap, Tap-and-Hold, etc.Hover, Tap, Double-Tap, Tap-and-Hold, etc.• emulieren Mausaktionenemulieren Mausaktionen

• Application GesturesApplication Gestures• Backspace, Enter, Backspace, Enter,

Scratch-out, etc.Scratch-out, etc.• Shortcuts fürShortcuts für

bestimmte Aktionenbestimmte Aktionen

Page 16: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

InkInk

• "digitale Tinte" – so natürlich wie möglich"digitale Tinte" – so natürlich wie möglich• Echtzeitrendern, Bezièrkurven, Anti-AliasingEchtzeitrendern, Bezièrkurven, Anti-Aliasing• Drucksensitivität, Stiftformen, subtraktives Drucksensitivität, Stiftformen, subtraktives

FarbmischenFarbmischen

• für handschriftliche Eingabefür handschriftliche Eingabe

• für visuelles Feedback & Anmerkungenfür visuelles Feedback & Anmerkungen

Ein erster Test.

Page 17: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

SchrifterkennungSchrifterkennung

• sekundär & nicht vollkommen!sekundär & nicht vollkommen!

Texteingabe

Page 18: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

AgendaAgenda

• Tablet PC: Hardware & SoftwareTablet PC: Hardware & Software

• Tablet-FunktionalitätTablet-Funktionalität• StifteingabeStifteingabe• Digitale TinteDigitale Tinte• SchrifterkennungSchrifterkennung

• Entwickeln für den Tablet PCEntwickeln für den Tablet PC• Das SDK im ÜberblickDas SDK im Überblick• Managed LibrariesManaged Libraries• Design-RichtlinienDesign-Richtlinien

• ZusammenfassungZusammenfassung

Page 19: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Entwickeln für den Tablet Entwickeln für den Tablet PCPC• "Think in Ink""Think in Ink"

• Ink als eigenständiger DatentypInk als eigenständiger Datentyp• kann als solcher gespeichert & verarbeitet werdenkann als solcher gespeichert & verarbeitet werden

• Schrifterkennung ist kein vollwertiger Schrifterkennung ist kein vollwertiger Tastatur-ErsatzTastatur-Ersatz

• besondere Anforderungen an das User besondere Anforderungen an das User InterfaceInterface• vereinfachte & natürliche Dateneingabevereinfachte & natürliche Dateneingabe• Größe der ControlsGröße der Controls

• Entdecke die Möglichkeiten!Entdecke die Möglichkeiten!

Page 20: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Das Tablet PC Platform Das Tablet PC Platform SDKSDK• aktuelle Version: aktuelle Version: 1.51.5

• unterstützte Plattformen:unterstützte Plattformen:• Windows 2000 Professional SP2 *Windows 2000 Professional SP2 *• Windows XP Professional *Windows XP Professional *• Windows XP Tablet PC EditionWindows XP Tablet PC Edition

• unterstützte Tools:unterstützte Tools:• Visual Studio 6.0 SP5Visual Studio 6.0 SP5• Visual Studio .NETVisual Studio .NET• Visual Studio .NET 2003Visual Studio .NET 2003

(* Keine Schrifterkennung. Ohne SDK keine Ink Collection.)(* Keine Schrifterkennung. Ohne SDK keine Ink Collection.)

Page 21: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Das Tablet PC Platform Das Tablet PC Platform SDKSDK• Managed (= .NET) APIs Managed (= .NET) APIs

• für Stift & Inkfür Stift & Ink

• COM Automation APIs (C/C++, VB6) COM Automation APIs (C/C++, VB6) • für Stift & Inkfür Stift & Ink

• Ink ControlsInk Controls• InkEdit, InkPictureInkEdit, InkPicture

• DokumentationDokumentation

• BeispielanwendungenBeispielanwendungen

• LaufzeitbibliothekenLaufzeitbibliotheken• für die Verwendung des SDK auf Nicht-Tablet-für die Verwendung des SDK auf Nicht-Tablet-

PCsPCs

Page 22: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Tablet PC PlatformTablet PC Platform

CO

M A

PI

Core services

C#

VB.NET

C++

VB

PenInputPanel objectInkDivider object

InkEdit controlInkPicture control

Ink services

Pen services

Recognition services

Man

aged

AP

I

Microsoft handwriting recognizers

Gesture recognizersShape recognizers

Custom recognizers

- US/Int. English- Japanese- Chinese T/S

- Korean- German- French

Page 23: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Das SDK im ÜberblickDas SDK im Überblick

Page 24: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Managed APIsManaged APIs

• Tablet Input API (Pen API)Tablet Input API (Pen API)• Ink & Gestures sammelnInk & Gestures sammeln• Pen Buttons abfragenPen Buttons abfragen

• Ink Data Management API (Ink API)Ink Data Management API (Ink API)• Ink speichern & bearbeitenInk speichern & bearbeiten

• Ink Recognition API (Recognition API)Ink Recognition API (Recognition API)• InkInk

inter-inter-pre-pre-tierentieren

Page 25: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

ObjektmodellObjektmodellInkCollector InkOverlay

Ink

Strokes

Renderer

Tablet

Stroke

Recognizers

Recognizer

DrawingAttributes

RecognizerContext

Pen API

Ink API

Reco API

Page 26: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Pen APIPen API

Page 27: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Pen API - ÜberblickPen API - Überblick

• Tablet & TabletsTablet & Tablets• Info über verfügbare Digitizer & Input DevicesInfo über verfügbare Digitizer & Input Devices

• Cursor & CursorsCursor & Cursors• Info über verfügbare (abstrakte) StiftspitzenInfo über verfügbare (abstrakte) Stiftspitzen

• InkCollector & InkOverlayInkCollector & InkOverlay• Ink aufnehmen & anzeigenInk aufnehmen & anzeigen• Events zu Gesten, Buttons & TipsEvents zu Gesten, Buttons & Tips• InkOverlay: Auswahl & Löschen zusätzlichInkOverlay: Auswahl & Löschen zusätzlich

Page 28: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

TabletsTablets

• Information über vorhandene DigitizerInformation über vorhandene Digitizer• Tip PressureTip Pressure• Winkel zwischen Tablet & StiftWinkel zwischen Tablet & Stift• StiftrotationStiftrotation• AuflösungAuflösung• Hovering & Abstand Stift-TabletHovering & Abstand Stift-Tablet• Cursor-IDCursor-ID• Tablet PnP-IDTablet PnP-ID

Page 29: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Die Klasse Die Klasse TabletTablet

• wichtige Eigenschaften:wichtige Eigenschaften:• HardwareCapabilitiesHardwareCapabilities

• CursorMustTouch, CursorsHavePhysicalIds, CursorMustTouch, CursorsHavePhysicalIds, HardProximity, IntegratedHardProximity, Integrated

• MaximumInputRectangleMaximumInputRectangle• NameName• PlugAndPlayIdPlugAndPlayId

• wichtige Methoden:wichtige Methoden:• IsPacketPropertySupported(System.Guid)IsPacketPropertySupported(System.Guid)• GetPropertyMetrics(System.Guid)GetPropertyMetrics(System.Guid)

DeviceWalker

Page 30: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

InkCollectorInkCollector

• Echtzeit-Ink-Input für AnwendungenEchtzeit-Ink-Input für Anwendungen

• "Ink Canvas": Region für Input"Ink Canvas": Region für Input• einfach einschalten:einfach einschalten:

InkCollector ic = new InkCollector(Handle);InkCollector ic = new InkCollector(Handle);ic.Enabled = true;ic.Enabled = true;

• diverse Eventsdiverse Events• StrokeStroke, , GestureGesture• Pen Movement: Pen Movement: CursorInRangeCursorInRange, ,

CursorButtonDown,CursorButtonDown, NewPacketsNewPackets etc. etc.• Mouse Trigger Events: Mouse Trigger Events: DoubleClickDoubleClick etc. etc.• Tablet Hardware Events: Tablet Hardware Events: TabletAddedTabletAdded, ,

TabletRemovedTabletRemovedInkCollector InputWatcher

Page 31: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

InkOverlayInkOverlay

• enthält InkCollectorenthält InkCollector

• ermöglicht zusätzlich Bearbeiten & ermöglicht zusätzlich Bearbeiten & Löschen:Löschen:InkOverlayEditingModeInkOverlayEditingMode• InkInk• Select: Lasso-Modus für Auswahl, Resizing etc.Select: Lasso-Modus für Auswahl, Resizing etc.• Delete: Löschmodus Delete: Löschmodus EraserModeEraserMode

• StrokeEraseStrokeErase• PointErase ( -> EraserWidth (in 1/100 mm) )PointErase ( -> EraserWidth (in 1/100 mm) )

• zusätzliche Events:zusätzliche Events:• Rendering: Rendering: Painting, PaintedPainting, Painted• Editing: Editing: SelectionChanging, StrokesDeletedSelectionChanging, StrokesDeleted

etc.etc.HelloInkOverlay

Page 32: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

PacketsPackets

• Datenblöcke mit Ink-InformationDatenblöcke mit Ink-Information

• können enthalten (können enthalten (PacketPropertyPacketProperty):):• XX, , YY, , PacketStatusPacketStatus , NormalPressure, , NormalPressure,

RollRotation etc.RollRotation etc.• HW- & treiberabhängig!HW- & treiberabhängig!

• Anwendung kann angeben, welche Daten Anwendung kann angeben, welche Daten sie verwenden möchte:sie verwenden möchte:

ic.DesiredPacketDescription = new Guid[] {ic.DesiredPacketDescription = new Guid[] {PacketProperty.X, PacketProperty.Y };PacketProperty.X, PacketProperty.Y };

Page 33: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Packets anschaulichPackets anschaulich

PacketPropWatcher

Page 34: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Ink APIInk API

Page 35: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Ink APIInk API

• Ink, Stroke & StrokesInk, Stroke & Strokes• Ink-Datenstruktur & einzelne LinienzügeInk-Datenstruktur & einzelne Linienzüge• Laden & Speichern aus Streams & Clipboard Laden & Speichern aus Streams & Clipboard

möglichmöglich

• DrawingAttributesDrawingAttributes• optisches Erscheinungsbild der Linienzüge, optisches Erscheinungsbild der Linienzüge,

wie z.B. Farbe, Transparenz, Linienstärke, wie z.B. Farbe, Transparenz, Linienstärke, AntialiasingAntialiasing

Page 36: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

InkInk

• verwaltet, manipuliert & speichert Input verwaltet, manipuliert & speichert Input von InkCollector & InkOverlayvon InkCollector & InkOverlay

• enthält Strokes und enthält Strokes und StrokesStrokes-Collection-Collection

• unterstützt "hit detection"unterstützt "hit detection"

• Koordinatensystem: HIMETRIC Koordinatensystem: HIMETRIC (Einheit: 0.01mm)(Einheit: 0.01mm)

• Events: Events: InkAdded, InkDeletedInkAdded, InkDeleted

Page 37: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

StrokeStroke

• StrokeStroke: Datensatz, aufgenommen : Datensatz, aufgenommen während einer Sequenzwährend einer Sequenz Pen Down Pen Down Pen Move Pen Move Pen Up Pen Up

• Sammlung von PacketsSammlung von Packets

• besitzt eindeutige ID (int) im Ink-Objektbesitzt eindeutige ID (int) im Ink-Objekt• AchtungAchtung: Jede Stiftaktion erzeugt einen : Jede Stiftaktion erzeugt einen

Stroke! Stroke! Nicht jeder Stroke ist sichtbar! Nicht jeder Stroke ist sichtbar!

• besitzt Eigenschaft besitzt Eigenschaft Deleted Deleted ((!!))

• Manipulation über das Ink-Objekt:Manipulation über das Ink-Objekt:AddStrokesAtRectangle, AddStrokesAtRectangle, CreateStroke(Point[] pts), DeleteStroke, CreateStroke(Point[] pts), DeleteStroke, DeleteStrokes, ExtractStrokes DeleteStrokes, ExtractStrokes etc.etc.StrokeIdViewer

Page 38: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

StrokesStrokes

• StrokesStrokes –Collection gehört zu Ink-Objekt –Collection gehört zu Ink-Objekt• read-only; enthält Verweise auf Stroke-read-only; enthält Verweise auf Stroke-

Objekte; Objekte; kein Ownership kein Ownership

• Bsp.: InkOverlay.SelectionBsp.: InkOverlay.Selection

• erzeugen:erzeugen:

Strokes CreateStrokes();Strokes CreateStrokes();Strokes CreateStrokes(int[] ids);Strokes CreateStrokes(int[] ids);

• Methoden: Methoden: Add, Clear, Remove, ContainsAdd, Clear, Remove, Contains etc.etc.

• Events: Events: StrokesAddedStrokesAdded, , StrokesDeletedStrokesDeleted

Page 39: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Ink rendern (1)Ink rendern (1)

• Klasse Klasse RendererRenderer kann Ink-Daten in kann Ink-Daten in grafischen Output "übersetzen"grafischen Output "übersetzen"• unterstützt Zoom, Größenänderungen, unterstützt Zoom, Größenänderungen,

Scrollen, RotationScrollen, Rotation

Page 40: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Ink rendern (2)Ink rendern (2)

• InkCollector & InkOverlay haben InkCollector & InkOverlay haben RendererRenderer--EigenschaftEigenschaft

• DrawDraw-Methode kann auf -Methode kann auf GraphicsGraphics-Objekt -Objekt oder Device Context zeichnen:oder Device Context zeichnen:void Draw(Graphics g, Stroke s) void Draw(Graphics g, Stroke s) void Draw(Graphics g, Stroke s, DrawingAttributes da) void Draw(Graphics g, Stroke s, DrawingAttributes da) void Draw(Graphics g, Strokes strokes) void Draw(Graphics g, Strokes strokes) void Draw(IntPtr hdc, Stroke s) void Draw(IntPtr hdc, Stroke s) void Draw(IntPtr hdc, Stroke s, DrawingAttributes da) void Draw(IntPtr hdc, Stroke s, DrawingAttributes da) void Draw(IntPtr hdc, Strokes strokes) void Draw(IntPtr hdc, Strokes strokes)

• Umwandlung HIMETRIC Umwandlung HIMETRIC Pixel: Pixel: InkSpaceToPixel, PixelToInkSpaceInkSpaceToPixel, PixelToInkSpace

Page 41: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

TransformationenTransformationen

• Verschieben: Verschieben: Move(float dx, dy)Move(float dx, dy)

• Drehen: Drehen: Rotate(float deg [, Point pt])Rotate(float deg [, Point pt])

• Skalieren: Skalieren: Scale(float fx, fy [, bool Scale(float fx, fy [, bool scaleWidth])scaleWidth])

• Transformieren:Transformieren:GetObjectTransform(ref Matrix m)GetObjectTransform(ref Matrix m)GetViewTransform(ref Matrix m)GetViewTransform(ref Matrix m)SetObjectTransform(Matrix m)SetObjectTransform(Matrix m)SetViewTransform(Matrix m)SetViewTransform(Matrix m)

Art der Art der TransformationTransformation

Linienstärke skaliert?Linienstärke skaliert?

objectobject neinneinviewview jaja

InkMagnify

Page 42: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

DrawingAttributesDrawingAttributes

• Formatierungsinfos für die Darstellung Formatierungsinfos für die Darstellung von Ink:von Ink:• bool bool AntiAliasedAntiAliased• Color Color ColorColor• bool bool FitToCurveFitToCurve: Gerade oder Bézier?: Gerade oder Bézier?• float float HeightHeight: für rechteckige Stiftspitze: für rechteckige Stiftspitze• bool bool IgnorePressureIgnorePressure• PenTip PenTip PenTipPenTip: Ball, Rectangle: Ball, Rectangle• RasterOperation RasterOperation RasterOperationRasterOperation: CopyPen : CopyPen

(normaler Stift), MaskPen (Text Marker) etc.(normaler Stift), MaskPen (Text Marker) etc.• byte byte TransparencyTransparency: 0=undurchsichtig, : 0=undurchsichtig,

255=unsichtbar255=unsichtbar• float float WidthWidth: in HIMETRIC-Einheiten: in HIMETRIC-Einheiten

InkFormatter

Page 43: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Strokes für Strokes für FortgeschritteneFortgeschrittene• Punkte eines Linienzugs bearbeiten:Punkte eines Linienzugs bearbeiten:

Point[] Stroke.Point[] Stroke.GetPointsGetPoints(...)(...)int Stroke.int Stroke.SetPointsSetPoints(...)(...)Point[] Point[] Stroke.Stroke.GetFlattenedBezierPointsGetFlattenedBezierPoints(...)(...)......

• Schnittpunkte:Schnittpunkte:float[] float[] SelfIntersectionsSelfIntersectionsfloat[] float[] FindIntersectionsFindIntersections(Strokes sks)(Strokes sks)StrokeIntersection[] StrokeIntersection[] GetRectangleIntersectionsGetRectangleIntersections

• Packets:Packets:int[] int[] GetPacketDataGetPacketData(...)(...)int[] int[] GetPacketValuesByPropertyGetPacketValuesByProperty(Guid (Guid id, ...)id, ...)......

InkHoles

Page 44: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

SchnittpunkteSchnittpunkte

Page 45: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Hit TestingHit Testing

• ... durch Punkte:... durch Punkte:Strokes Ink.HitTest(Point p, float radius)Strokes Ink.HitTest(Point p, float radius)

• ... durch Rechtecke:... durch Rechtecke:Strokes Ink.HitTest(Rectangle r, float percent)Strokes Ink.HitTest(Rectangle r, float percent)

• ... durch "Lasso":... durch "Lasso":Strokes Ink.HitTest(Point[] pts, float percent)Strokes Ink.HitTest(Point[] pts, float percent)Strokes Ink.HitTest(Point[] pts, float percent, Strokes Ink.HitTest(Point[] pts, float percent, out Point[] arrLassoPts)out Point[] arrLassoPts)

• nächste Punkte:nächste Punkte:Stroke Ink.NearestPoint(Point p, ...)Stroke Ink.NearestPoint(Point p, ...)float Stroke.NearestPoint(Point p, ...)float Stroke.NearestPoint(Point p, ...)

Page 46: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Ink serialisierenInk serialisieren• speichern:speichern:

byte[] Ink.Save(PersistenceFormat f, byte[] Ink.Save(PersistenceFormat f, CompressionMode c)CompressionMode c)

• f: f: Base64Gif, Base64InkSerializedFormat, Gif, Base64Gif, Base64InkSerializedFormat, Gif, InkSerializedFormatInkSerializedFormat (ISF) (ISF)

• c: c: Default, Maximum, NoCompressionDefault, Maximum, NoCompression• nur für ISFnur für ISF

• laden:laden:void Ink.Load(byte[] inkData)void Ink.Load(byte[] inkData)

• Strokes-Collection speichern:Strokes-Collection speichern:Ink.CustomStrokes(String name, Strokes sks)Ink.CustomStrokes(String name, Strokes sks)

• Zusatzdaten speichern:Zusatzdaten speichern:ExtendedPropertiesExtendedProperties (für Ink, Stroke) (für Ink, Stroke)• Id, DataId, Data

Serialization

Page 47: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Ink ins ClipboardInk ins Clipboard

• kopieren:kopieren:IDataObject Ink.IDataObject Ink.ClipboardCopyClipboardCopy(...)(...)

• einfügen:einfügen:Strokes Ink.Strokes Ink.ClipboardPasteClipboardPaste(...)(...)

• testen:testen:bool Ink.bool Ink.CanPasteCanPaste(...)(...)

Page 48: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Recognition Recognition APIAPI

Page 49: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Recognition APIRecognition API

• RecognizerRecognizer• repräsentiert eine Recognition Enginerepräsentiert eine Recognition Engine• normalerweise sprachspezifischnormalerweise sprachspezifisch

• RecognizerContextRecognizerContext• Unterstützung für den Recognizer bzgl. des zu Unterstützung für den Recognizer bzgl. des zu

erkennenden Inhaltserkennenden Inhalts

• RecognitionResultRecognitionResult• erkannter Text & mögliche Alternativenerkannter Text & mögliche Alternativen

Page 50: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

RecognizerRecognizer• synchrone oder asynchrone Umwandlung synchrone oder asynchrone Umwandlung

von Ink in Textvon Ink in Text• Input: Input: StrokesStrokes-Collection eines Ink-Objekts-Collection eines Ink-Objekts• Output: Output: RecognitionResultRecognitionResult mit möglichen mit möglichen

TextwertenTextwerten

• verschiedene Recognizer können verschiedene Recognizer können verschiedene Sprachen oder Zwecke verschiedene Sprachen oder Zwecke unterstützenunterstützen• nicht nur Text kann erkannt werden: Formen, nicht nur Text kann erkannt werden: Formen,

Noten, etc. möglichNoten, etc. möglich• Anwendungsgesten – Ink-basiertAnwendungsgesten – Ink-basiert

• z.Zt. 8 Sprachen unterstütztz.Zt. 8 Sprachen unterstützt• US English, International English, Japanisch, US English, International English, Japanisch,

Deutsch, Französisch, Simplified & Traditional Deutsch, Französisch, Simplified & Traditional Chinese, KoreanischChinese, Koreanisch

Page 51: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Synchron vs AsynchronSynchron vs Asynchron

• auch "Vordergrund" vs "Hintergrund"auch "Vordergrund" vs "Hintergrund"

• Erkennung im selben Thread wie die Erkennung im selben Thread wie die Anwendung?Anwendung?• asynchron: bei zeitkritischen Anwendungen asynchron: bei zeitkritischen Anwendungen

oder großen Mengen von Inkoder großen Mengen von Ink• schwieriger zu programmierenschwieriger zu programmieren

• Mittelweg: Teilerkennung ("partial Mittelweg: Teilerkennung ("partial recognition")recognition")• Recognizer startet, sobald Ink verfügbar ist, Recognizer startet, sobald Ink verfügbar ist,

korrigiert Ergebnis laufendkorrigiert Ergebnis laufend• meist in eigenem Threadmeist in eigenem Thread

Page 52: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

ZuverlässigkeitZuverlässigkeit

• Texterkennung ist nicht einfach & selten Texterkennung ist nicht einfach & selten eindeutig!eindeutig!

• Recognizer liefert nicht nur Textstring, Recognizer liefert nicht nur Textstring, sondern auchsondern auch• Aussagewahrscheinlichkeit ("confidence Aussagewahrscheinlichkeit ("confidence

level")level")• AlternativvorschlägeAlternativvorschläge• zugehörige Strokeszugehörige Strokes

• Anwendung sollte Korrektur-UI anbietenAnwendung sollte Korrektur-UI anbieten

Page 53: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Texterkennung für Texterkennung für EinsteigerEinsteiger

Ink.Strokes.ToString()Ink.Strokes.ToString()

• nutzt Default Recognizernutzt Default Recognizer

• liefert wahrscheinlichstes Ergebnisliefert wahrscheinlichstes Ergebnis

• synchrone Erkennung für komplettes Inksynchrone Erkennung für komplettes Ink

InkRecognition

Page 54: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Gesten erkennenGesten erkennen

• 38 Application Gestures38 Application Gestures• ScratchOut, Triangle, ArrowUp, ...ScratchOut, Triangle, ArrowUp, ...

• CollectionMode.CollectionMode.InkAndGestureInkAndGesture / / GestureOnlyGestureOnly

• Ereignis: Ereignis: GestureGesture• auswerten oderauswerten oder• InkCollectorGestureEventArgs.Cancel=trueInkCollectorGestureEventArgs.Cancel=true

StrokeStroke-Event feuert-Event feuert

• Methode Methode SetGestureStatusSetGestureStatus legt fest, legt fest, welche Gesten erkannt werden sollenwelche Gesten erkannt werden sollen• alle erkennen: alle erkennen: ApplicationGesture.AllGesturesApplicationGesture.AllGestures

Page 55: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Erkennung nichttrivialErkennung nichttrivial

• RecognizerRecognizer-Objekt zur Steuerung der -Objekt zur Steuerung der TexterkennungTexterkennung• Eigenschaft Eigenschaft CapabilitiesCapabilities

• ArbitraryAngle, DownAndLeft etc.ArbitraryAngle, DownAndLeft etc.

• Collection Collection RecognizersRecognizers liefert verfügbare liefert verfügbare RecognizerRecognizer• GetDefaultRecognizerGetDefaultRecognizer

• RecognizerContextRecognizerContext für spezifische für spezifische TexterkennungTexterkennung• Modus: Modus: RecognitionFlagsRecognitionFlags• Input-Typ, Wortlisten etc.Input-Typ, Wortlisten etc.

Page 56: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

RecognizerContext RecognizerContext nutzennutzen• Objekt erstellen Objekt erstellen

((Recognizer.CreateRecognizerContext()Recognizer.CreateRecognizerContext()))

• evtl. Eigenschaften setzenevtl. Eigenschaften setzen

• Strokes übergebenStrokes übergeben

• evtl. evtl. EndInkInput()EndInkInput() aufrufen aufrufen• erkennen:erkennen:

RecognizerContext.Recognize(out RecognizerContext.Recognize(out RecognitionStatus rs)RecognitionStatus rs)• liefert liefert RecognitionResultRecognitionResult-Objekt-Objekt

• TopStringTopString-Eigenschaft gibt wahrscheinlichstes -Eigenschaft gibt wahrscheinlichstes ErgebnisErgebnis

• BackGroundRecognize()BackGroundRecognize() für asynchrone für asynchrone ErkennungErkennung

Page 57: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Alternativen nutzenAlternativen nutzen

• RecognitionAlternateRecognitionAlternate-Klasse liefert Infos -Klasse liefert Infos zu Interpretationsmöglichkeitenzu Interpretationsmöglichkeiten

• RecognitionResult.TopAlternateRecognitionResult.TopAlternate für für wahrscheinlichsten Trefferwahrscheinlichsten Treffer

• GetAlternatesFromSelection()GetAlternatesFromSelection() für weitere für weitere MöglichkeitenMöglichkeiten

RecoProposition

Page 58: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Text & Ink verbindenText & Ink verbinden

• Resultate können mit dem Ink-Objekt Resultate können mit dem Ink-Objekt gespeichert werdengespeichert werden

• Eigenschaft Eigenschaft Strokes.RecognitionResultStrokes.RecognitionResult kann überkann über

RecognitionResult.SetStrokesResult()RecognitionResult.SetStrokesResult()

gesetzt werdengesetzt werden

Page 59: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Erkennung verbessernErkennung verbessern

• Eigenschaft Eigenschaft FactoidFactoid des des RecognizerContextRecognizerContext-Objekts gibt Hinweis -Objekts gibt Hinweis darauf, darauf, waswas erkannt werden soll: erkannt werden soll:recoCtxt.Factoid="EMAIL|WEB"recoCtxt.Factoid="EMAIL|WEB"

• Factoids sind StringsFactoids sind Strings• DIGIT, DEFAULT, CURRENCY, DATE etc.DIGIT, DEFAULT, CURRENCY, DATE etc.

• Eigenschaft Eigenschaft WordlistWordlist enthält Sammlung enthält Sammlung von Strings, welche bevorzugt erkannt von Strings, welche bevorzugt erkannt werden sollen:werden sollen:

WordList wl=new WordList();WordList wl=new WordList();wl.Add("Gugelhupf");wl.Add("Gugelhupf");recoCtxt.WordList=wl;recoCtxt.WordList=wl;

RecognitionOption

Page 60: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Ink Ink ControlsControls

Page 61: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

ÜberblickÜberblick

• Steuerelemente für Steuerelemente für WindowsanwendungenWindowsanwendungen

• InkEditInkEdit• ähnlich RichText-Controls, zusätzlich Ink Input ähnlich RichText-Controls, zusätzlich Ink Input

& Texterkennung& Texterkennung• Versionen für .NET, ActiveX, Win32Versionen für .NET, ActiveX, Win32

• InkPictureInkPicture• ähnlich InkCollector, InkOverlayähnlich InkCollector, InkOverlay• Ink auf Bildern (JPG, BMP, PNG, GIF)Ink auf Bildern (JPG, BMP, PNG, GIF)• Versionen für .NET & ActiveXVersionen für .NET & ActiveX

Page 62: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

InkEditInkEdit

• Eigenschaften:Eigenschaften:• InkModeInkMode: InkAndGesture, Ink, Disabled: InkAndGesture, Ink, Disabled• StatusStatus: Idle, Collecting, Recognizing: Idle, Collecting, Recognizing• InkInsertModeInkInsertMode: InsertAsText, InsertAsInk: InsertAsText, InsertAsInk• DrawingAttributesDrawingAttributes• UseMouseForInputUseMouseForInput (bool) (bool)• CursorCursor (Maus-Cursor!)(Maus-Cursor!)

• Methoden:Methoden:• Ink[] Ink[] SelInks()SelInks()• InkDisplayMode InkDisplayMode SelInksDisplayMode()SelInksDisplayMode()

• Ink, TextInk, Text

InkEditDemo

Page 63: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Erkennung beeinflussenErkennung beeinflussen

• RecognizerRecognizer-Eigenschaft für detaillierte -Eigenschaft für detaillierte EinstellungenEinstellungen

• FactoidFactoid-Eigenschaft verfügbar-Eigenschaft verfügbar

• RecoTimeoutRecoTimeout: Wartezeit vor Umsetzung: Wartezeit vor Umsetzung

• Erkennung manuell starten: Erkennung manuell starten: Recognize()Recognize()

• GestureGesture-Ereignis und -Ereignis und SetGestureStatus()SetGestureStatus() für Gestenerkennungfür Gestenerkennung• Default: DownLeft[Long] (Return), Default: DownLeft[Long] (Return),

UpRight[Long] (Tab), Right (Space), Left UpRight[Long] (Tab), Right (Space), Left (Bkspc)(Bkspc)

Page 64: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

InkPictureInkPicture

• Kombination aus Kombination aus InkOverlayInkOverlay und und PictureBoxPictureBox

• InkEnabledInkEnabled statt (InkOverlay.) statt (InkOverlay.)EnabledEnabled

PaperForm

Page 65: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Neu in Version 1.5Neu in Version 1.5

• PenInputPanelPenInputPanel• frei programmierbarer Eingabebereichfrei programmierbarer Eingabebereich• unterstützt TSF & Korrekturunterstützt TSF & Korrektur

• DividerDivider• Ink-Analyse, Trennung von Text & GrafikInk-Analyse, Trennung von Text & Grafik

PIPSerialization

Page 66: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

DesignrichtlinienDesignrichtlinien

• visuelle Kennzeichnungvisuelle Kennzeichnungvon Eingabebereichenvon Eingabebereichen

• DPI-AbhängigkeitDPI-Abhängigkeit

• BildschirmorientierungBildschirmorientierung(1024x768 (1024x768 768x1024) 768x1024)

• Modalität (Schreiben, Löschen, Zeigen, …)Modalität (Schreiben, Löschen, Zeigen, …)• expliziter Wechsel & Zustandsanzeigeexpliziter Wechsel & Zustandsanzeige

• ErgonomieErgonomie• Zielen: Bereiche <5mm schwer zu treffenZielen: Bereiche <5mm schwer zu treffen• Auswählen: Lasso-ToolAuswählen: Lasso-Tool• Hovering: spezielle Version von COMCTL32.DLLHovering: spezielle Version von COMCTL32.DLL

Page 67: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

DesignrichtlinienDesignrichtlinien

• Parallaxe durch Bildschirmdicke & Parallaxe durch Bildschirmdicke & LichtbrechungLichtbrechung• KalibrierungKalibrierung

• Rechts-/Linkshänder Rechts-/Linkshänder (Menüs!)(Menüs!)

• Performancefragen fürPerformancefragen fürnatürlich wirkendesnatürlich wirkendesSchreibenSchreiben

Page 68: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

AgendaAgenda

• Tablet PC: Hardware & SoftwareTablet PC: Hardware & Software

• Tablet-FunktionalitätTablet-Funktionalität• StifteingabeStifteingabe• Digitale TinteDigitale Tinte• SchrifterkennungSchrifterkennung

• Entwickeln für den Tablet PCEntwickeln für den Tablet PC• Das SDK im ÜberblickDas SDK im Überblick• Managed LibrariesManaged Libraries• Design-RichtlinienDesign-Richtlinien

• ZusammenfassungZusammenfassung

Page 69: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

ZusammenfassungZusammenfassung• Ink ist das grundlegende Objekt in Ink ist das grundlegende Objekt in

stiftbasierten Anwendungen.stiftbasierten Anwendungen.

• Das SDK bietet umfangreiche & Das SDK bietet umfangreiche & komfortable Möglichkeiten zur komfortable Möglichkeiten zur Manipulation von Ink, zur Analyse & Manipulation von Ink, zur Analyse & Schrifterkennung.Schrifterkennung.

• Für Standardaufgaben stehen Ink Controls Für Standardaufgaben stehen Ink Controls zur Verfügung.zur Verfügung.

• Es bestehen besondere Anforderungen an Es bestehen besondere Anforderungen an das UI-Design.das UI-Design.

Page 70: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Fragen!?Fragen!?

Uff...Uff...

Page 71: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

BuchempfehlungBuchempfehlung

• Rob Jarrett, Philip SuRob Jarrett, Philip Su“Building Tablet PC “Building Tablet PC Applications”Applications”Microsoft Press 2003Microsoft Press 2003ISBN 0-7356-1723-6ISBN 0-7356-1723-6

Page 72: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Weiterführende InfosWeiterführende Infos

• Tablet PC Platform SDKTablet PC Platform SDKhttp://msdn.microsoft.com/downloads/default.asphttp://msdn.microsoft.com/downloads/default.asp?url=?url=/downloads/sample.asp?url=/MSDN-FILES//downloads/sample.asp?url=/MSDN-FILES/027/002/015/msdncompositedoc.xml027/002/015/msdncompositedoc.xml

• Tablet Developer Info @ MicrosoftTablet Developer Info @ Microsofthttp://www.microsoft.com/windowsxp/tabletpc/http://www.microsoft.com/windowsxp/tabletpc/developers/default.aspdevelopers/default.asp

• Tablet PC Developer CommunityTablet PC Developer Communityhttp://www.tabletpcdeveloper.com/http://www.tabletpcdeveloper.com/

Page 73: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition

Slides & DemosSlides & Demos

• http://www.frankpr.de/http://www.frankpr.de/

Vielen Dank!

Page 74: Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.

Tablet PC Edition