Back-of-pen Erasing in Silverlight

As addendum to my previous post Erasing Ink in Silverlight 2 I want to show how to enable back-of-pen erasing for users with a compatible stylus device (e.g. on a Tablet PC or with an external Graphics Tablet). The key that enables this scenario is the StylusDevice.Inverted property. It reports during mouse events whether the front-of-pen (stylus) or back-of-pen (eraser)…


Snipping Pictures with Silverlight

One of my favorite tools on the Tablet PC is the ‘Snipping Tool’. I have been using it frequently since the early XP days (back then we shipped it seperately as a Power Toy). Now in Vista, it’s part of the main OS and I find myself using it quite often event on my desktop PC….


TabletPC Development Gotchas Part 5: Rendering ink and image to a bitmap using Winforms

Annotating pictures with handwriting or drawings is a fun and useful scenario for digital ink. In many cases the application user wants to create a new image file with the ink annotation “burnt” into the picture, so they can use the result of their work in other contexts and with other applications (e.g. attach the…


Slide decks from my Oredev sessions

Thanks to everyone who attended my sessions at the Oredev conference in Malmo, Sweden. Thank you also for all the great questions and feedback after the sessions – much appreciated! I have attached my slide decks to this post for those who are interested. Some of the demos that I coded or showed during the sessions…


Off to Oredev

Just a quick note: I am on my way to Oredev conference. I’ll be presenting the following two talks there: Introduction to application development with WPF and Silverlight for TabletPCs and UMPCs Advanced application development with WPF and Silverlight for TabletPCs and UMPCs I’ll post slide decks and demos here after I those presentations.


TabletPC Development Gotchas Part4: Semantics of GetSystemMetrics(SM_TABLETPC)

If your application needs to find out at runtime whether or not it runs on a Tablet PC, it is recommended to call GetSystemMetrics() and pass in the value ‘SM_TABLETPC’. But what does it actually mean for a computer to be a Tablet PC? Is that determined by the installed hardware components? Or the software components? All of…


Fun with Ink & XAML Part3: Ink Data Binding

Data binding in WPF provides a great way for applications to present and interact with data. Elements can be bound to data from a variety of data sources – for example XML files. I have put together a sample that uses data binding to retrieve a collection of handwritten ink documents from a data store (XML…


TabletPC Development Gotchas Part3: Coerce to Factoid (XP vs. Vista)

If you are writing (or maintaining) and application that uses handwriting recognition, please be aware of a subtle behavior difference between XP and Vista when coercing the recognition result to a Factoid (or an input scope or a word list). This may easily be missed in your application testing, but it will potentially result in…


TabletPC Development Gotchas Part2: Deploying InkPicture applications to Windows XP desktops

If you are developing applications that use an InkPicture control and you plan to deploy your product to customers running Windows XP desktop OS (i.e. not the Windows XP Tablet PC Edition), please read on: The TabletPC controls (InkPicture and InkEdit) have been designed for being used on Windows XP TabletPC Edition. On other pre-Vista operating…


Shape Recognition with WPF and InkAnalysis

Did you know that the Windows Vista SDK contains a shape recognition engine? It’s part of the InkAnalysis framework that provides APIs for handwriting recognition, ink parsing and shape recognition. This framework enables some really cool scenarios, especially when combined with WPF. And it’s very easy to program against it from a WPF app due to…