控件中国网现已改版,您看到的是老版本网站的镜像,系统正在为您跳转到新网站首页,请稍候.......
中国最专业的商业控件资讯网产品咨询电话:023-67870900 023-67871946
产品咨询EMAIL:SALES@COMPONENTCN.COM

ZoomPanel

  • 当前版本:V2.1
  • 开 发 商:Andrej Benedik
  • 产品功能:图像操作
  • 可用平台:.NET



ZoomPanel是一个自定义控件,它为任何的WPF应用程序提供动画缩放和平移功能。

主要功能

  • 支持缩放和平移的所有类型:移动放大缩小矩形缩放复位
  • 使用鼠标滚轮放大和缩小。
  • 为更好的用户体验提供动画索缩放(为缩放位图图像提高了性能)。
  • 支持添加ZoomPanel到ScrollViewer
  • 可限制的缩放区
  • 支持动态和自定义内容基于当前缩放级别的显示— 例如针对缩放地图。
  • 许多方法和属性用来定制ZoomPanel的行为。
  • 完整的可定制的ZoomController使其适合您的应用程序的样式。
  • 详细的文档和示例。
  • 源代码也可以被都买。
  • 基于用户反馈的积极开发。

在该库中的控件

ZoomPanel控件只是Ab2d.Controls.ZoomPanel库的主控件。该库包含:

  • ZoomPanel主控件,使得应用程序的用户用来缩放或平移ZoomPanel控件的内容。
  • ZoomController预定义的缩放控制器,它包含的那些按钮用于改变当前ZoomPanel的缩放模式。该控件的优点是它可以被放到用户界面的任何地方。
  • ViewboxEx扩展了标准的WPF的Viewbox使其具有Viewbox属性,该属性可以定义控件的内容的哪些部分将被显示。
  • RectAnimation自定义Rect动画类,它用于ZoomPanel的缩放和平移产生动画效果。

注:该库仅在WPF应用程序中可用—不支持Silverlight。

该软件包包含一个详细的帮助文件

这里还有许多示例用于查看ZoomPanel和其他控件的实际运行效果。此外,其他三个用户案例示例显示了使用先进的缩放和平移来改善一个现实世界的应用程序是多么的简单(点击图片看更大的屏幕截图):

Painter Documents browser Image browser

ZoomPanel 和ZoomController

WPF的矢量图形引擎是一个完美的选择用于显示复杂的2D图表,模式,复杂的图表和其他的图表元素。它常常是为了应用程序的用户用于查看整个图像,同时用户也能够放大来查看其细节部分。WPF已经提供了一些基本的缩放和转换机制。但它从Scale和Translate Transform到一个伟大的用户体验经历了很长的一段路程。

下面的代码是所有需要使用具有默认的ZoomController的ZoomPanel所必须的(在右上角的5个按钮):

01.<Window x:Class="Ab2d.ZoomControlSample.ZoomPanelSample"
02.xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
03.xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
04.xmlns:ab2d="clr-namespace:Ab2d.Controls;assembly=Ab2d.Controls.ZoomPanel">
05.  <Grid>
06.    <ab2d:ZoomPanel Name="myZoomPanel">
07.      <TextBlock>12345</TextBlock>
08.    </ab2d:ZoomPanel>
09.    <ab2d:ZoomController VerticalAlignment="Top" 
10.                            HorizontalAlignment="Right"/>
11.  </Grid>
12.</Window>

首先,我们需要向我们的程序集中添加应用并添加命名空间的声明到根元素中。该ZoomPanel控件完成了大部分的“魔力”。基于它的ZoomMode,它可以放大,缩小,平移,缩放到ZoomPanel的内容的选定的矩形区域(在我们的示例中时“12345”文本)。ZoomController控件只是一个预定义的ToggleButtons面板,它使得应用程序的用户在ZoomPanel上不同的ZoomMode 切换。

以下的ZoomModes可用:

  • 移动模式使得使用按下鼠标左键来移动ZoomPanel中的内容(平移)。
  • 放大模式放大内容。当左键被点击后,鼠标点击的位置就成为当前图像的中心点。
  • 缩小模式类似于ZoomIn,只是它缩小了图像。
  • 矩形模式使得用户使用拖拽鼠标画出一个矩形—然后释放鼠标左键使得在所得到的矩形区域中显示放大或缩小的内容以适合ZoomPanel。
  • None模式禁用ZoomPanel。

在所有的缩放模式中除了None,放大和缩小也可以使用鼠标滚轮来进行(如果IsMouseWheelZoomEnabled属性没有被禁用)。

ZoomPanel可以使用许多它自身的公共方法完全的定制。另外从中可以得到一个自定义的控件并且一些核心的方法可以被重载,以提供自定义的行为。

它还可以创建您自己的ZoomController— 在示例程序中的相关包中显示了两种不同的方法可以实现这一点。

有关属性和方法的更多信息能够在该软件包所包含的帮助文档中找到。

ViewboxEx

ViewboxEx控件是非常类似标准的WPF的Viewbox控件。使用它的默认设置它伸展和缩放一个单一的子视图以填充现有可用的控件。

ViewboxEx通过定义额外的属性扩展了Viewbox—Viewbox。它的默认值作为字符串是“0 0 1 1—其定义了一个在(0,0)开始的并其高度和宽度为1的矩形。这就意味着显示整个内容——通过相对的默认值(1指的是100%)。

下面的代码示例显示的只包含TextBlock的右半部分— 以该视图的50%比例开始并显示宽度的50%。

1.<ab2d:ViewboxEx Name="ViewboxEx1"
2.                   Viewbox="0.5 0 0.5 1" Stretch="Fill">
3.    <TextBlock>12345</TextBlock>
4.</ab2d:ViewboxEx>

以下来自示例应用层序中的图像显示了一些其他Viewbox值的显示结果:

RectAnimation

RectAnimation是一个自定义的动画类,它能够被用于一个矩形到另一个矩形的动画产生。它与ZoomPanel控件一起使用为缩放产生动画。下面的代码显示了一个可用的示例。

1.<ab2d:RectAnimation From="0 0 1 1" 
2.                       To="0.5 0.5 0.5 0.5"
3.                       Duration="0:0:4"
4.                       Storyboard.TargetName="ViewboxEx1" 
5.                       Storyboard.TargetProperty="Viewbox"/>