New version of ZoomPanel adds animation easing

by abenedik 18. November 2011 22:20

I am happy to announce that a new version of ZoomPanel is available.

The new version greatly improves zooming animations with adding animation easing and support for custom animations.

In the previous versions of ZoomPanel the zooming was animated with using a simple linear animation. Now a quintic function is used to ease the animation that starts slowly, than accelerates, decelerates and slowly stops at the new zoom level.

 

There is also a new zoom to object sample that shows how to zoom to selected object. The sample also demonstrates the power of custom animations. The following video shows the new sample:

 

The new version also fixes an issue with Viewbox with SetViewbox or SetZoom methods when the RotationAngle is not 0 and it is not changed. Before the RotationAngle was reset to 0 in some circumstances.

Tags:

ZoomPanel

New version of ZoomPanel with tons of new features is available

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.

ZoomPanel

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):

ZoomPanel

 

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).

Tags: ,

ZoomPanel

Improved ZoomPanel - added FitToWidth and FitToHeight methods

by abenedik 22. September 2009 04:17

To make the ZoomPanel control even better a few methods were added to the new version:
FitToWidth, FitToLimitsWidth, FitToHeight, FitToLimitsHeight.

 

The methods can be very usefull when the ZoomPanel is used to show the documents. The new methods are demonstrated in the improved version of Documents Brower sample (see image below).

ZoomPanel Documents Browser

The new version v2.1.3551 can be downloaded from my Downloads page.

Tags: ,

ZoomPanel

Improved ZoomPanel to work with Wpf Browser Applications

by abenedik 14. September 2009 22:55

The ZoomPanel control has been improved to work correctly with Wpf Browser applications running in Internet Zone.

The cause of the problem was a real surprise - the Assembly.GetName() method requires FileIoPermissions - in Internet Zone this is not allowed :(

The new version v2.0.3544 can be downloaded from my Downloads page.

Tags: ,

ZoomPanel

Added Documents Browser and Image Browser samples to ZoomPanel package

by abenedik 30. July 2009 21:02

I have just added two interesting Use case samples to ZoomPanel samples.

Besides Painter sample thare are now also Documents Browser and Image Browser samples.

Documents Browser sample

Documents Browser sample shows how to create a WPF application to browser documents that were scaned or recieved by fax. The list of documents is read from Documents.xml file. The documents data are than binded to a ListBox and an Image control. The Image control is enclosed into a ZoomPanel to add zooming and panning support to the document browser.

Image Browser sample

Image Browser sample shows how to create a simple Image Browser application in WPF. The application also uses the ZoomPanel control to enable users to observe the details of the shown images.

Painter sample

Painter sample shows how simple is to add zooming and panning to a drawing application. The implemented zooming is same or even better as in some of the best professional drawing applications.

Also the Feedback page in the samples application is now fixed - it will not send your feedback to localhost any more :)

All the new samples are available with the ZoomPanel package that can be downloaded from my Downloads page.
If you already have the new ZoomPanel control and would just like to get the new samples, they can be downloaded here: ZoomPanelSamples.zip.

And one last note:
The price for the ZoomPanel is still only $69.00 for a single developer license. It is also possible to buy full source code of the library.

Tags: ,

ZoomPanel

New version of the Ultimate ZoomPanel control for WPF available

by abenedik 21. July 2009 17:50

The ZoomPanel control can add animated zooming and panning to any WPF application. With the new version many new features were added to make it the ultimate Zoom Panel control for every zooming scenario.

The following video shows how easy is to add professional zooming and panning to a sample drawing application.

ZoomPanel sample video

Here is the complete list of new features:

  • Added IScrollInfo support - possibility to use ZoomPanel inside ScrollViewer.
  • Added posibility to limit the zoom area with ViewboxLimits, ViewboxMinSize and IsViewboxLimited properties.
  • When animating images the scale quality is lowered to increase the frame rate.
  • Added support for custom or dynamic zoom content - for example for showing maps - RegisterCustomContentProvider and UnregisterCustomContentProvider.
  • Added a new ZoomPanel.SetViewboxNow method - the value is of Viewbox is immediately changed regardless of IsAnimated property.
  • Added a new ZoomPanel.ResetNow method - immediate reset of viewbox.
  • Added ResetToLimits and ResetToLimitsNow methods.
  • Added PreviewViewboxChangedEvent and ViewboxChangedEvent - in PreviewViewboxChangedEvent subscriber can prevent or change the changed Viewbox.
  • Added IsResetToLimits to ZoomController - if true the reset button on ZoomController resets the ZoomPanel to limits.

The samples that come with ZoomPanel have also been greatly improved. They demonstrate all the aspects of the controls and classes available with the library.

To make the use of the ZoomPanel even simpler the package also includes a detailed help file.

More about the new ZoomPanel can be seen on ZoomPanel page.

The new version can be downloaded from my Downloads page.

Tags: ,

ZoomPanel

Add powerful and animated zooming and panning features to your application with new ZoomPanel control

by abenedik 22. August 2008 00:40

WPF's vector based graphical engine is a perfect choice to display complex 2D diagrams, schemas, complex graphs and other graphical elements. It is often necessary for the user of the application to see the whole image and that the user can also zoom in to see the details. The WPF already provides some basic scaling and translating mechanism. But it is a long way from Scale and Translate Transform to a great user experience.

With the new ZoomPanel control this way is really short and the results are really great. All the code that is needed is:

ZoomPanel sample code

The code enables the user to zoom in, out, zoom to rectangle, pan with the mouse, use mouse wheel to zoom in and out and zoom to show the whole content of the ZoomPanel - in this case a simple TextBlock. The ZoomController is a predefined toggle buttons panel that is used to switch between different zoom modes.

But this is not all - the sweetest part of the control is that is can animate the zooming and panning! So when the user zooms in on a part of an image, the image is not just simply redrawn with the new scale factor, but the zooming is animated to look much more natural - just like the user would move his head closer.

The following screenshot shows ZoomPanel in action - taken from a sample application that comes with the package:

ZoomPanel sample application

And guess what - that is still not all.

The Ab2d.Controls.ZoomPanel library contains also a RectAnimation class (animate Rect objects) and an extended WPF's Viewbox - a ViewboxEx.

The ViewboxEx can be also very useful. With its default values it is the same as Viewbox. But it has additional Viewbox property that defines which part of ViewboxEx content will be shown - for example "0.5 0 0.5 1" shows only the right half of the content - starting at 50% and showing 50% of width.

For more information see https://www.ab4d.com/ZoomPanel.aspx.

From the page it is possible to download a 60 days evaluation version (sorry, no free version this time) or purchase a licensed version (recommended :) To make it even more attractive I have added an option to buy a full source code for the library. See https://www.ab4d.com/Purchase.aspx for more purchasing information.

As usual I am giving a launch discount - after adding items to the shipping cart enter "initialZoomPanel" into discounts textbox and click Apply.

The discount is valid only until the end of October 2008.

Tags: , ,

ZoomPanel