←选择平台

ImageViewerInteractiveMode类

总结

基类提供了丰富的用户体验特性imageview

语法
c#
VB
c++
公共摘要ImageViewerInteractiveMode
公共mustlinheritImageViewerInteractiveMode
公共ref类ImageViewerInteractiveMode摘要
讲话

ImageViewerInteractiveModeInteractiveService对象的imageview当用户使用鼠标或触摸与查看器交互时,提供丰富的用户界面体验。

ImageViewerInteractiveMode是一个基抽象类:从它可以派生自己的类来处理与查看器的自定义交互。有关LEADTOOLS提供的开箱即用模式的更多信息和列表,请参阅图像查看器交互模式

ImageViewerInteractiveMode具有以下功能:

成员 描述
WorkingCursorIdleCursorHitTestStateCursor 当交互模式处于空闲、工作或命中测试状态时使用的光标(适用于桌面浏览器)。
MouseButtons
附加到此模式的鼠标按钮(用于桌面浏览器)

要使用交互模式,您可以创建任何派生类的实例,并使用以下方法之一将其分配给查看器:

的事件附加侦听器InteractiveService根据用户输入执行操作。集InteractiveEventArgs。IsHandled真正的将事件标记为已处理,以便其他交互模式也不会响应该事件。

您可以同时使用多种交互模式。例如,使用下面的代码来支持用鼠标左键平移/缩放和用右键放大玻璃:

例子

这个例子将创建一个自定义ImageViewerInteractiveMode这将在用户点击或触摸和拖动查看器时旋转图像。

c#
VB
使用Leadtools;使用Leadtools.Controls;使用Leadtools.Codecs;使用Leadtools.Drawing;使用Leadtools.ImageProcessing;使用Leadtools.ImageProcessing.Color;私人TransformInteractiveMode: ImageViewerInteractiveMode{公共TransformInteractiveMode ():基地(){.AutoItemMode = ImageViewerAutoItemMode.AutoSet;}私人Keys _scaleKeyModifier = Keys. control;公共虚拟键ScaleKeyModifier{得到{返回_scaleKeyModifier;}{//支持none和any修饰符开关(值){情况下钥匙。没有:情况下钥匙。Alt:情况下钥匙。转变:情况下钥匙。控制:_scaleKeyModifier = value;打破;默认的ArgumentException (“无效的价值”“ScaleKeyModifier”);}}}私人Keys _rotateKeyModifier = Keys. alt;公共虚拟键RotateKeyModifier{得到{返回_rotateKeyModifier;}{//支持none和any修饰符开关(值){情况下钥匙。没有:情况下钥匙。Alt:情况下钥匙。转变:情况下钥匙。控制:_rotateKeyModifier = value;打破;默认的ArgumentException (“无效的价值”“PageKeyModifier”);}}}公共覆盖字符串名字{得到{返回“转换”;}}公共覆盖intId{得到{返回ImageViewerInteractiveMode。UserModeId + 3;}}公共覆盖无效开始(imageview imageview){基地.Start (imageview);var服务=基地.InteractiveService;//平移所需事件服务。DragStarted + =EventHandler < InteractiveDragStartedEventArgs > (service_DragStarted);服务。DragDelta + =EventHandler < InteractiveDragDeltaEventArgs > (service_DragDelta);服务。DragCompleted + =EventHandler < InteractiveDragCompletedEventArgs > (service_DragCompleted);服务。DoubleTap + =EventHandler < InteractiveEventArgs > (service_DoubleTap);}公共覆盖无效停止(imageview imageview){如果(IsStarted){var服务=基地.InteractiveService;服务。DragStarted - =EventHandler < InteractiveDragStartedEventArgs > (service_DragStarted);服务。DragDelta - =EventHandler < InteractiveDragDeltaEventArgs > (service_DragDelta);服务。DragCompleted - =EventHandler < InteractiveDragCompletedEventArgs > (service_DragCompleted);服务。DoubleTap - =EventHandler < InteractiveEventArgs > (service_DoubleTap);基地鸡毛蒜皮(imageview);}}私人无效service_DragStarted (对象发送者:InteractiveDragStartedEventArgs{//确保pinch没有工作,否则,忽略pan如果(!.CanStartWork (e))返回;//确保我们在一个项目上如果.Item = =返回;e.IsHandled =真正的;.OnWorkStarted (EventArgs.Empty);}私人无效service_DragDelta (对象发送器:InteractiveDragDeltaEventArgs{如果(!.IsWorking)返回;var项=.Item;如果(项目= =返回;//找出该做什么vardx = e.Change.X;vardy = e.Change.Y;如果(dx == 0 && dy == 0)返回;varscaleKeyModifier =.ScaleKeyModifier;varrotateKeyModifier =.RotateKeyModifier;varscale =(控制。ModifierKeys& scaleKeyModifier) == scaleKeyModifier;varrotate =(控制。ModifierKeys& rotateKeyModifier) == rotateKeyModifier;varimageview =.ImageViewer;如果(规模){Scale(imageViewer, item, dy, e.Origin);}其他的如果(旋转){旋转(imageViewer, item, dx, e.Origin);}其他的{翻译(imageViewer, item, dx, dy);}e.IsHandled =真正的;}私人无效service_DragCompleted (对象发送者:InteractiveDragCompletedEventArgs{如果(!.IsWorking)返回;e.IsHandled =真正的;OnWorkCompleted (EventArgs.Empty);}私人无效service_DoubleTap (对象发送器,InteractiveEventArgs{//确保我们没有工作如果正在工作|| !.CanStartWork (e))返回;//确保我们有一个项目var项=.Item;如果(项目= =返回;e.IsHandled =真正的;.OnWorkStarted (EventArgs.Empty);身份(.ImageViewer、项);.OnWorkCompleted (EventArgs.Empty);}私人无效标识(ImageViewer ImageViewer, ImageViewerItem项){项。变换= LeadMatrix.Identity;}私人无效缩放(ImageViewer ImageViewer, ImageViewerItem项,intdy,引点位置){/ /……//设置比例代码/ /……}私人无效旋转(ImageViewer ImageViewer ImageViewerItem项,intdx,领点位置){/ /……//设置旋转代码/ /……}私人无效翻译(ImageViewer ImageViewer ImageViewerItem项,intdx,intdy){/ /……//设置翻译代码/ /……}}公共无效ImageViewerInteractiveMode_Example (){_imageViewer.InteractiveModes.BeginUpdate ();_imageViewer.InteractiveModes.Add (TransformInteractiveMode {IsEnabled =});/ /……/ /……/ /……_imageViewer.InteractiveModes.EndUpdate ();}
进口Leadtools进口Leadtools。控制进口Leadtools。编解码器进口Leadtools。画进口Leadtools。ImageProcessing进口Leadtools.ImageProcessing.Color私人TransformInteractiveMode:继承了ImageViewerInteractiveMode公共()MyBase(). autoitemmode = ImageViewerAutoItemMode。AutoSet结束私人_scaleKeyModifier作为钥匙=钥匙。控制公共重写的财产ScaleKeyModifier ()作为得到返回_scaleKeyModifier结束得到(值作为键)'支持none和any修饰符选择情况下价值情况下钥匙。没有,钥匙。Alt键。转变,钥匙。控制_scaleKeyModifier = value情况下其他的ArgumentException (“无效的价值”“ScaleKeyModifier”结束选择结束结束财产私人_rotateKeyModifier作为钥匙=钥匙。Alt公共重写的财产RotateKeyModifier ()作为得到返回_rotateKeyModifier结束得到(值作为键)'支持none和any修饰符选择情况下价值情况下钥匙。没有,钥匙。Alt键。转变,钥匙。控制_rotateKeyModifier = value情况下其他的ArgumentException (“无效的价值”“PageKeyModifier”结束选择结束结束财产公共覆盖只读的财产名称()作为字符串得到返回“转换”结束得到结束财产公共覆盖只读的财产Id ()作为整数得到返回ImageViewerInteractiveMode。UserModeId + 3结束得到结束财产公共覆盖开始(按值传递imageview作为imageview)MyBase.Start (imageview)昏暗的服务作为InteractiveService =MyBase.InteractiveService' Pan所需事件AddHandler服务。DragStarted,AddressOfservice_DragStartedAddHandler服务。DragDelta,AddressOfservice_DragDeltaAddHandler服务。DragCompleted,AddressOfservice_DragCompletedAddHandler服务。DoubleTap,AddressOfservice_DoubleTap结束公共覆盖(停止) (按值传递imageview作为imageview)如果IsStarted然后昏暗的服务作为InteractiveService =MyBase.InteractiveServiceRemoveHandler服务。DragStarted,AddressOfservice_DragStartedRemoveHandler服务。DragDelta,AddressOfservice_DragDeltaRemoveHandler服务。DragCompleted,AddressOfservice_DragCompletedRemoveHandler服务。DoubleTap,AddressOfservice_DoubleTapMyBase停止(imageview)结束如果结束私人service_DragStarted (按值传递发送方作为对象按值传递e作为InteractiveDragStartedEventArgs)确保pinch没有工作,否则,忽略pan如果.CanStartWork (e))然后返回结束如果“确保我们在做一个项目如果.Item没有什么然后返回结束如果e.IsHandled =真正的.OnWorkStarted (EventArgs.Empty)结束私人service_DragDelta (按值传递发送方作为对象按值传递e作为InteractiveDragDeltaEventArgs)如果.IsWorking)然后返回结束如果昏暗的作为ImageViewerItem =.Item如果没有什么然后返回结束如果“想想该怎么做昏暗的dx作为整数= e.Change.X昏暗的dy作为整数= e.Change.Y如果Dx = 0需要说明Dy = 0然后返回结束如果昏暗的scaleKey作为键=.ScaleKeyModifier昏暗的rotateKey作为键=.RotateKeyModifier昏暗的doScale作为布尔=(控制。ModifierKeysscaleKey) = scaleKey昏暗的doRotate作为布尔=(控制。ModifierKeysrotateKey) = rotateKey昏暗的imageview作为imageview =.ImageViewer如果doScale然后缩放(imageViewer, item, dy, e.Origin)ElseIfdoRotate然后旋转(imageViewer, item, dx, e.Origin)其他的翻译(imageViewer, item, dx, dy)结束如果e.IsHandled =真正的结束私人service_DragCompleted (按值传递发送方作为对象按值传递e作为InteractiveDragCompletedEventArgs)如果.IsWorking)然后返回结束如果e.IsHandled =真正的OnWorkCompleted (EventArgs.Empty)结束私人service_DoubleTap (按值传递发送方作为对象按值传递e作为InteractiveEventArgs)“确保我们没有在工作如果.IsWorkingOrElse.CanStartWork (e))然后返回结束如果“确保我们有一个项目昏暗的作为ImageViewerItem =.Item如果没有什么然后返回结束如果e.IsHandled =真正的.OnWorkStarted (EventArgs.Empty)身份(.ImageViewer项).OnWorkCompleted (EventArgs.Empty)结束私人身份(按值传递imageview作为imageview,按值传递作为ImageViewerItem)项。Transform = LeadMatrix。身份结束私人量表(按值传递imageview作为imageview,按值传递作为ImageViewerItem,按值传递dy作为整数按值传递位置作为LeadPoint)“…'集比例码“…结束私人旋转(按值传递imageview作为imageview,按值传递作为ImageViewerItem,按值传递dx作为整数按值传递位置作为LeadPoint)“…'设置旋转代码“…结束私人翻译(按值传递imageview作为imageview,按值传递作为ImageViewerItem,按值传递dx作为整数按值传递dy作为整数“…'集转换代码“…结束结束公共ImageViewerInteractiveMode_Example ()_imageViewer.InteractiveModes.BeginUpdate ()昏暗的模式作为TransformInteractiveMode模式。是Enabled =_imageViewer.InteractiveModes.Add(模式)“…“…“…_imageViewer.InteractiveModes.EndUpdate ()结束
需求
目标平台
Leadtools。控制作为sembly
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。