Windows apps
Collapse the table of content
Expand the table of content

Guidelines for optical zoom and resizing

This topic describes the new Windows UI for zooming and resizing elements and provides user experience guidelines for using these new interaction mechanisms in your Windows Store apps.

See this feature in action as part of our App features, start to finish series:  User interaction: Touch input... and beyond

Overview of optical zoom and resizing

Optical zoom enables users to magnify their view of the content within a content area (it is performed on the content area itself), whereas resizing enables users to change the relative size of one or more objects without changing the view into the content area (it is performed on the objects within the content area).


Optical zoom should not be confused with the Semantic Zoom interaction. While they share the same gestures, Semantic Zoom refers to the presentation and navigation of structured data or content within a single view (such as the folder structure of a computer, a library of documents, or a photo album).

Both optical zoom and resizing interactions are performed through the pinch and stretch gestures (moving the fingers farther apart zooms in and moving them closer together zooms out), or by holding the Ctrl key down while scrolling the mouse scroll wheel, or by holding the Ctrl key down (with the Shift key, if no numeric keypad is available) and pressing the plus (+) or minus (-) key.

The following diagrams demonstrate the differences between resizing and optical zooming.

Optical zoom: User selects an area, and then zooms into the entire area.

Moving the fingers closer together zooms in on the content area and moving them apart zooms out

Resize: User selects an object within an area, and resizes that object.

Moving the fingers closer together shrinks an object and moving them apart enlarges it

User experience guidelines for optical zoom and resizing

Use the following guidelines for applications that support either resizing or optical zooming:

  • If maximum and minimum size constraints or boundaries are defined, use visual feedback to demonstrate when the user reaches or exceeds those boundaries.
  • Use snap points to influence zooming and resizing behavior by providing logical points at which to stop the manipulation and ensure a specific subset of content is displayed in the viewport. Provide snap points for common zoom levels or logical views to make it easier for a user to select those levels. For example, photo apps might provide a resizing snap point at 100% or, in the case of mapping apps, snap points might be useful at city, state, and country views.

    Snap points enable users to be imprecise and still achieve their goals.

    There are two types of snap-points:

    • Proximity - After the contact is lifted, a snap point is selected if inertia stops within a distance threshold of the snap point. Proximity snap points still allow a zoom or resize to end between snap points.
    • Mandatory - The snap point selected is the one that immediately precedes or succeeds the last snap point crossed before the contact was lifted (depending on the direction and velocity of the gesture). A manipulation must end on a mandatory snap point.
  • Inertia physics should be used. These include the following:
    • Deceleration: Occurs when the user stops pinching or stretching. This is similar to sliding to a stop on a slippery surface.
    • Bounce: A slight bounce-back effect occurs when a size constraint or boundary is passed.
  • Space controls according to the Guidelines for targeting.
  • Don't use zooming to navigate the UI or expose additional controls within your app, use a panning region instead. For more info on panning, see Guidelines for panning.

Use the following guidelines for applications that support resizing.

  • Provide scaling handles for constrained resizing. Isometric, or proportional, resizing is the default if the handles are not specified.
  • In most cases, you should not put resizable objects within a resizable content area. Exceptions to this include:
    • Drawing applications where resizable items can appear on a resizable canvas or art board.
    • Webpages with an embedded object such as a map.


    In all cases, the content area is resized unless all touch points are within the resizable object.

Related topics

Guidelines for common user interactions
Touch interaction design
Tutorial (Windows Store apps using JavaScript)
Quickstart: Pointers
Quickstart: DOM gestures and manipulations
Quickstart: Static gestures
Quickstart: Manipulation gestures
Tutorial (Windows Store apps using C#/VB/C++ and XAML)
Quickstart: Touch input
Quickstart: Pointers
Tutorial (Windows Store apps using C++ and DirectX)
Responding to touch input (DirectX and C++)
Samples (DOM)
HTML scrolling, panning and zooming sample
Input: Instantiable gestures sample
Samples (Windows Store app APIs)
Input: Manipulations and gestures (JavaScript) sample
Input: Windows 8 gestures sample
Input: XAML user input events sample
XAML scrolling, panning, and zooming sample
Samples (DirectX)
DirectX touch input sample
Input: Manipulations and gestures (C++) sample



Build date: 9/16/2013

© 2017 Microsoft