Many common user scenarios lend themselves to a navigation pattern using a viewport. This technique allows the user to pan and zoom through complex information, with the visible screen as a viewport into a larger virtual screen. Hierarchies such as organizational charts, timelines, bubble diagrams, maps, and many other forms of rich information are good candidates for viewports. Viewports implement several good design principles, particularly allowing appropriate whitespace and many options for showing relationships between elements.
In this session, we’ll cover the design aspects, and then do a complete XAML implementation of a viewport, including panning and zooming in both mouse and touch based environments. The session includes an introduction to transforms, which are one of the essential XAML features needed for viewports.