by abenedik
26. June 2011 22:31
I am really happy to announce that the highly anticipated new version of ZoomPanel library is finally released.
The new version brings tons of great new features:
- Added ZoomPanelNavigator, NavigationCircle and NavigationSlider controls. They can be used to move around zoom area and set zoom factor with slider (shown in the upper left corner in the image above).
- Added ZoomPanelMiniMap, ViewboxExMiniMap and BaseMiniMap controls. The ZoomPanelMiniMap can be used to preview which part of the content is shown. It also enables moving the shown content and zooming in and out with mouse wheel (shown in the bottom right corner in the image above).
- Added Stretch property to ZoomPanel - before only Uniform stretch was used. Now it is also possible to use other stretch values: None, Fill, Uniform or UniformToFill.
- Added IsZoomPositionPreserved property to ZoomPanel - it controls if mouse wheel zooms at the mouse position or at the center of the ZoomPanel.
- Added RotationAngle property to ZoomPanel.
- Added ZoomFactor, CenterPosition and CenterPositionUnits properties to ZoomPanel. Before the area that is shown with ZoomPanel was controller by Viewbox property. The usage of this property was sometimes quite complex. Therefore ZoomFactor and CenterPosition were added. They are much simpler to understand and use.
- Added support to save and navigate through the ZoomPanel history.
- Added ActualViewbox to ZoomPanel - it describes the actually shown viewbox (the difference is created because of different aspect ratio).
- Added SetZoom method to ZoomPanel with many overloads to simplify setting which part of the content is shown.
- Added ZoomAtMousePosition and ZoomAtRelativeMousePosition methods to ZoomPanel.
- Added IsAutoZoomPanelFindingEnabled property to ZoomController - now it is possible to disable automatically finding the ZoomPanel in case we need to set it manually.
- Improved design time support when setting Viewbox value for ZoomPanel. Now it is allowed to temporary set the value of Width and Height to 0 (before when 1 was changed the 0.5 the designer throw an exception when 1 was replaced with 0).
- Added MultiTouchZoomPanel control with full source code.
- BREAKING CHANGE: When using custom content: Now ZoomFactor is used instead of zoomLevel (in CustomContentProvider callback).
For example the following code is all that is needed to add zooming and panning to the ZoomPanel's content (12345 text in this sample), buttons to control the ZoomMode (ZoomController), zoom panel navigation with buttons and slider to change zoom factor (ZoomNavigator) and mini map that shows which part of the content is shown:
<Window x:Class="Ab2d.ZoomControlSample.ZoomPanelSample"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:ab2d="clr-namespace:Ab2d.Controls;assembly=Ab2d.Controls.ZoomPanel">
<Grid>
<ab2d:ZoomPanel Name="myZoomPanel">
<TextBlock>12345</TextBlock>
</ab2d:ZoomPanel>
<ab2d:ZoomController VerticalAlignment="Top"
HorizontalAlignment="Right"/>
<ab2d:ZoomPanelNavigator VerticalAlignment="Top"
HorizontalAlignment="Left"/>
<ab2d:ZoomPanelMiniMap VerticalAlignment="Bottom"
HorizontalAlignment="Right"/>
</Grid>
</Window>
The new version comes with many new samples that demonstrate the new functionality. The following screenshot shows one of the samples (the list of all the samples is seen on the left side):
Even before version 3, the ZoomPanel was the most advanced zooming and panning control for WPF. With this release the control has become even better.
The current price for the Single developer license is only $69. Because so many new features were added to the library, the price will increase significantly on 11th July 2011 (more details are available on Purchase page). So now it is an ideal time to purchase the control, renew the updates subscription or purchase source code for the library.
As usual the new version can be downloaded from User Account page (for commercial users) or from my Downloads page (for evaluation version).