通过异步序列化提高图表性能 Diagramming for WPF

通过异步序列化提高图表性能

2023 年 12 月 6 日
MindFusion.Diagramming for WPF 4.0.0 添加了异步加载和保存文件的功能,从而提高了响应能力。

MindFusion.Diagramming for WPF 提供了一个全面的工具集,用于创建各种图表,包括组织结构图、图形、类层次结构和族树。它提供了广泛的外观和行为自定义选项,以及保存/加载选项和多种自动布局。

4.0.0 版本添加了对异步序列化的支持,这意味着现在可以异步保存和加载文件。这允许用户在加载或保存数据时与应用程序交互,使其感觉更加灵敏

MindFusion.Diagramming for WPF V4.0.0

发布日期:2023 年 11 月 30 日

V4.0.0更新

特征
  • 模型/视图分离- 图现在被视为模型类,并且必须显示在 DiagramView 控件内。DiagramView 包含一个内置的 ScrollViewer,因此将应用程序更新到此版本应该是用新的 DiagramView 替换旧的 ScrollViewer,并使用视图对象的缩放、滚动和行为属性而不是图表属性。
  • UI 虚拟化- DiagramView 和 ContainerNode 现在仅为当前在各自视口中可见的图表项目将 UI 元素添加到 WPF 可视化树中。这应该可以提高图表的渲染/刷新速度。
  • 空间索引- 您现在可以设置图表“EnableSpatialIndex”属性来创建项目位置索引,以实现更快的命中测试和视口裁剪查询。当与 UI 虚拟化相结合时,这将大大提高包含数万或更多项目的图表的用户交互和渲染速度。
  • 多点触摸支持-DiagramView 现在可以处理 WPF 触摸消息并实现可通过以下属性控制的多点触摸手势:
    • 如果启用 MultiTouchZoom 属性(默认),则可以使用两点触摸捏合/轻拂手势来缩放或平移视图。
    • 如果启用 MultiTouchModify 属性(默认),则可以使用两点触摸捏合/轻拂手势来移动、缩放和旋转图表节点。
    • 如果禁用 MultiTouchZoom 属性,则每次触摸都会绘制与当前行为相对应的图表项。
    • 如果禁用 MultiTouchModify 属性,则从节点开始的每次触摸都会绘制一个图表链接。
    • 后一种模式可用于协作白板/课堂场景。
    • 将 MultiTouchDraw 设置为 false 可防止同时绘制多个项目,同时保持启用其他多点触控手势。
    • 如果启用 MultiTouchDraw(默认),则在 TouchGestureInterval 时间和 TouchGestureDistance 距离内添加第二次触摸仍会取消第一次触摸绘制,并启动多点触摸手势。
    • 附加的Diagram.TouchHitDistance 属性使您可以更轻松地在触摸屏上抓取调整手柄,而无需增加AdjustmentHandlesSize 值。
  • 异步序列化- 现在可以异步保存和加载文件。
  • 各种各样的
    • TabbedDiagramView 中添加了 PageMoved 和 PageRenaming 事件。
    • 现在可以使用通过 HeadBrush、BaseBrush 和 IntermediateBrush 设置的不同画笔来填充不同的箭头形状。
    • 添加了DiagramDocument JSON 序列化方法。
    • 现在,您可以通过处理 ContainerChildAdding 和 ContainerChildRemoving 事件有选择地阻止向容器添加子节点或从容器中删除子节点。
    • FoldIconSize 属性已添加到 ContainerNode。
    • 添加了图和图文档的克隆方法,该方法返回图/文档及其项目的副本。
    • 现在,您可以设置 GridPatternHatch 和 GridPatternThreshold,以在低缩放级别将对齐网格替换为填充图案,从而加快绘制速度。
    • 提高了导出的 SVG 文本中基线对齐的精度。
    • SvgNode 解析器现在支持 SVG 元素的“class”属性中的多个类名称。
  • API变更
    • 图现在应该托管在DiagramView 内部。目前它仍然可以用作独立控件,但对此的支持将在未来版本中删除。
    • 设置DiagramView而不是Diagram的Behavior、ZoomFactor、Scroll*、*ButtonActions属性。
    • 不要将“概述”的“文档”属性设置为“图表”实例,而是设置其“图表视图”属性。
    • 不要将 Ruler 的 Document 属性设置为图表实例,而是设置其 DiagramView 属性。后者现在是默认的内容属性。如果您仍然需要在 Xaml 中显示 Ruler 内的独立图表,则必须通过 <diag:Ruler.Document> 标记显式设置它。
    • 为了与其他 MindFusion 图表库保持一致,DiagramNodeAdapter 已重命名为 ControlNode。其 UIElement 属性已重命名为 Control。
修复
  • 各种各样的
    • 修复了 ShapeNode.Clone 不复制 ImagePadding 值的问题。
    • 修复了在启用 Windows 显示缩放的情况下调用 CreateImage 时的结果。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/227422.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

『PyTorch学习笔记』如何快速下载huggingface模型/数据—全方法总结

如何快速下载huggingface模型/数据—全方法总结 文章目录 一. 如何快速下载huggingface大模型1.1. IDM(Windows)下载安装连接1.2. 推荐 huggingface 镜像站1.3. 管理huggingface_hub cache-system(缓存系统) 二. 参考文献 一. 如何快速下载huggingface大模型 推荐 huggingface…

苹果mac电脑如何彻底删除卸载软件?

在苹果电脑上安装和使用软件非常容易&#xff0c;但是卸载软件却可能会变得复杂和困难。不像在Windows上&#xff0c;你不能简单地在控制面板中找到已安装的程序并卸载它们。因此&#xff0c;在这篇文章中&#xff0c;我们将讨论苹果电脑怎么彻底删除软件。 CleanMyMac X全新版…

通信线缆是什么

通信线缆 电子元器件百科 文章目录 通信线缆前言一、通信线缆是什么二、通信线缆的类别三、通信线缆应用实例四、通信线缆的作用原理总结前言 每种线缆都有其特定的特性和用途。通信线缆起到连接和传输信号的作用,是实现通信和数据传输的重要组成部分。 一、通信线缆是什么 …

高级搜索——ST表,离线RMQ问题

文章目录 前言可重复贡献问题ST表的定义ST表的存储结构ST表的预处理预处理的实现 ST表的区间查询对于k的获取区间查询的实现 OJ链接 前言 对于查询区间最值的方法&#xff0c;我们常用的就是线段树&#xff0c;树状数组&#xff0c;单调队列&#xff0c;而树状数组更适合用于快…

AI报告专题:创造性和生成式人工智能

今天分享的AI系列深度研究报告&#xff1a;《AI报告专题&#xff1a;创造性和生成式人工智能》。 &#xff08;报告出品方&#xff1a;Capgemini&#xff09; 报告共计&#xff1a;64页 AI一代 生成式人工智能 (AI)正在迅速改变我们与技术的交互方式&#xff0c;使机器能够创…

Java实现屏幕截图程序(一)

在Java中&#xff0c;可以使用Robot类来实现屏幕截图程序。Robot类提供了一组用于生成输入事件和控制鼠标和键盘的方法。 Java实现屏幕截图的步骤如下&#xff1a; 导入Robot类 import java.awt.Robot;创建Robot对象 Robot robot new Robot();获取屏幕分辨率信息 Dimensi…

redis-学习笔记(hash)

Redis 自身已经是 键值对 结构了 Redis 自身的键值对就是通过 哈希 的方式来组织的 把 key 这一层组织完成后, 到了 value 这一层, 还可以用 哈希类型 来组织 (简单的说就是哈希里面套哈希 [数组里面套数组 -> 二维数组] ) [ field value ] hset key field value [ field va…

urllib 异常、cookie、handler及代理(四)

目录 一、urllib异常 二、urllib cookie登录 三、urllib handler 处理器的基本使用 四、urllib 代理和代理池 参考 一、urllib异常 URLError/HTTPError 简介&#xff1a; 1.HTTPError类是URLError类的子类 2.导入的包urllib.error.HTTPError urllib.error.URLError 3.h…

如何将idea中导入的文件夹中的项目识别为maven项目

问题描述 大家经常遇到导入某个文件夹的时候&#xff0c;需要将某个子文件夹识别为maven项目 解决方案

XUbuntu22.04之8款免费UML工具(一百九十七)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

【计算机组成体系结构】SRAM和DRAM

RAM — Random Access Memory 随机访问存储器 —指定某一存储单元地址的时候&#xff0c;存储单元的读取速度并不会因为存储单元的物理位置改变 SRAM即为 Static RAM 静态随机访问存储器 — 用于主存DRAM即为 Dynamic RAM 动态随机访问存储器 — 用于Cache 一、SRAM和DRAM的特…

oomall课堂笔记

一、项目分层结构介绍 controller层&#xff08;控制器层&#xff09;&#xff1a; 作用&#xff1a;负责输出和输入&#xff0c;接收前端数据&#xff0c;把结果返回给前端。 1.处理用户请求&#xff0c;接收用户参数 2.调用service层处理业务&#xff0c;返回响应 servi…

Javaweb之Maven仓库的详细解析

2.3 Maven仓库 仓库&#xff1a;用于存储资源&#xff0c;管理各种jar包 仓库的本质就是一个目录(文件夹)&#xff0c;这个目录被用来存储开发中所有依赖(就是jar包)和插件 Maven仓库分为&#xff1a; 本地仓库&#xff1a;自己计算机上的一个目录(用来存储jar包) 中央仓库&a…

利用R语言heatmap.2函数进行聚类并画热图

数据聚类然后展示聚类热图是生物信息中组学数据分析的常用方法&#xff0c;在R语言中有很多函数可以实现&#xff0c;譬如heatmap,kmeans等&#xff0c;除此外还有一个用得比较多的就是heatmap.2。最近在网上看到一个笔记文章关于《一步一步学heatmap.2函数》&#xff0c;在此与…

python 涉及opencv mediapipe知识,眨眼计数 供初学者参考

基本思路 我们知道正面侦测到人脸时&#xff0c;任意一只眼睛水平方向上的两个特征点构成水平距离&#xff0c;上下两个特征点构成垂直距离 当头像靠近或者远离摄像头时&#xff0c;垂直距离与水平距离的比值基本恒定 根据这一思路 当闭眼时 垂直距离变小 比值固定小于某一个…

主动而非被动:确保网络安全运营弹性的途径

金融部门处理威胁的经验对网络安全领域的任何人都有启发——没有什么可以替代提前摆脱潜在的风险和问题。 从狂野西部的银行劫匪到勒索软件即服务 (RaaS)&#xff0c;全球金融生态系统面临的威胁多年来发生了巨大变化。技术进步带动了金融业的快速发展&#xff0c;从现金交易到…

【开放集检测OSR】open-set recognition(OSR)开集识别概念辨析

开放集学习 Openset Learning 主动学习 Active Learning 例外检测 Out-of-Distribution open-set recognition(OSR)开集识别 anomaly detection和outlier detection 文章目录 OOD检测OSR开放集识别OSR开放集识别在训练和测试阶段的数据集使用数据分布似然函数OSR开放集识别的特…

2023人工智能和市场营销的融合报告:创造性合作的新时代需要新的原则

今天分享的人工智能系列深度研究报告&#xff1a;《2023人工智能和市场营销的融合报告&#xff1a;创造性合作的新时代需要新的原则》。 &#xff08;报告出品方&#xff1a;M&CSAATCHITHINKS&#xff09; 报告共计&#xff1a;11页 生成型人工智能的兴起和重要性 生成式…

Dockerfile介绍

1. DockerFile介绍 dockerfile是用来构建docker镜像的文件&#xff01;命令参数脚本&#xff01; 构建步骤&#xff1a; 1、编写一个dockerfile文件 2、docker build 构建成为一个镜像 3、docker run运行镜像 4、docker push发布镜像&#xff08;DockerHub、阿里云镜像仓库…

开源MES/免费MES/开源MES生产流程管理

一、什么是MES生产管理流程 生产管理系统&#xff08;又称制造执行系统&#xff09;是一种集成了计划、生产、质量控制、库存管理和材料申请等生产流程的管理系统。工厂生产管理流程是企业中实现高效生产的重要一环。 二、工厂生产管理流程的步骤 步骤一&#xff1a;计划和排…