The ListBox for WPF and Silverlight controls support optical zoom functionality so users can manipulate the size of the items intuitively through pinch gestures. The zooming transformation is smooth and fluid so the performance of your application is not sacrificed.
You can customize the zoom using the ZoomMode and Zoom properties. The ZoomMode property gets or sets whether the zoom is enabled or disabled. The Zoom property gets the Zoom value applied to the control. The ZoomChanged event is triggered when the zoom value of the control is changed.
The ListBox controls support both horizontal and vertical orientation, allowing for more layout scenarios. To set the orientation of the control, set the Orientation property to Horizontal or Vertical.
In order to have the highest performance imaginable, the ListBox controls can render items outside the viewport in a preview state. Like the standard ItemTemplate, the Preview template defines the appearance of items when they are in a preview state, such as zoomed out or during fast scroll. The controls will then switch to the full item template when the items have stopped scrolling or zooming.
The ListBox controls support UI virtualization so they are blazing-fast while able to display thousands of items with virtually no loss of performance. You can determine how many items are rendered in each layout pass by setting the ViewportGap and ViewportPreviewGap properties. These properties can be adjusted depending on the scenario.
The ViewportGap property gets or sets a coefficient which will determine in each layout pass the size of the viewport. If zero is specified the size of the viewport will be equal to the scrollviewer viewport. If 0.5 is specified the size of the viewport will be enlarged to take up half screen more at both sides of the original viewport.
The ViewportPreviewGap property gets or sets a coefficient which will determine in each layout pass the size of the viewport to render items in preview mode.