作为领先技术25周年的一部分,我们正在建立在25天庆祝25个项目领导的功能和易用性的深度。今天的项目来自尼克。
它所做的
这个项目使用拖拽排序页文档或图像文件内使用LEADTOOLS版本19。
功能使用
开发进展杂志
你好,我是尼克和我要使用LEADTOOLS在文档中创建一个应用程序的页面可以重新定购商品具有拖放功能。为此,我将创建一个基本的文档查看器,然后创建一个自定义
InteractiveMode处理功能。首先,我创建了使用WinForms应用程序的UI。由于应用程序基本上是一个文档查看器,我演示的c#文件查看器和使用几个组件,主要是保存和加载程序。在这一点上,我有一个基本的文档查看器:我可以加载一个PDF,它显示为页面缩略图,保存PDF,并退出程序。在这一点上,保存PDF只创建以来它的另一个副本页面还在相同的顺序。我也许90分钟到这一点。
概念验证,我修改我的代码改变页面的顺序编程,并且能够保存页面的新秩序。原来LEADTOOLS已经处理这通过提供
移动()在DocumentPages财产的文档在主题是它使用LeadCollection对象的页面:
188宝金博安卓下载文档:LeadCollection类我只感兴趣修改缩略图窗格。缩略图窗格包含两个
InteractiveModes默认情况下:ImageViewerSelectItemsInteractiveMode,ImageViewerPanZoomInteractiveMode,优先顺序。
188宝金博安卓下载文档:ImageViewerSelectItemsInteractiveMode
188宝金博安卓下载文档:ImageViewerPanZoomInteractiveMode我们将创建我们自己的
InteractiveMode通过创建处理拖放ImageViewerDragDropInteractiveMode类。这个新类将扩展ImageViewerSelectItemsInteractiveMode,因为它已经包含了SelectItem我们将使用为基础的功能。也许我花了半小时阅读我需要的功能。我要通过轮询各种事件:特别是,
DragStarted和DragCompleted。如果没有阻力发生——也就是说,用户单击缩略图并释放鼠标按钮不动——新InteractiveMode仅仅表现为基类,并选择项。然而,如果拖动事件发生时,我们想要的InteractiveMode拖放事件来处理它。这意味着我们不需要包括在内SelectItem InteractiveMode。此外,由于大量的点击和拖动会发生,PanZoom InteractiveMode可能会导致一些冲突,无论优先顺序。自这两个添加默认缩略图窗格中,我决定清除出去之前添加我的,所以我只会有什么效果。我现在写完代码来处理事件。我能发现当选择一个缩略图页面,哪些页面缩略图下当鼠标完成和拖动操作结束。这大概持续了一个小时的编码,调整和断点。
然而,事实证明我的新
ImageViewerDragDropInteractiveMode没有访问加载文档。而不是通过文档的InteractiveMode直接,InteractiveMode将提高一个事件,一个拖放操作完成后,通过原始位置指数和目标。从这里,UI拥有文档处理重新排序页面。我做了一些审美的变化
InteractiveMode,就像改变时,鼠标光标InteractiveMode功能提供视觉反馈给用户。最初,当执行一个拖放操作时,“选择项目”矩形仍吸引,但我压抑。在这一点上,我可以打开一个PDF在这个应用程序中,拖拽页面缩略图查看器的改变他们的秩序,并将重新排序页面保存为一个新文件。清理后,组织,和评论我的代码,我想说整个任务用了超过八个小时。如果我不使用LEADTOOLS,我仍然是在文档显示。
下载项目
这个示例的源代码项目从这里下载。运行项目,将其解压缩到C: \ LEADTOOLS 19 \ \ DotNet \ CS例子目录。


