Visio 中面向开发人员的新增功能

本文档全面概述了 Visio 2013 中面向开发人员的新增功能和增强功能。对于希望快速开始使用 Visio 平台的开发人员,本文档提供了开始对 Visio 2013 进行编码的足够详细信息。

**上次修改时间:**2015年9月18日

**适用范围:**Visio 2013 | Visio 2016

简介

Visio 2013 为自定义绘图解决方案提供了一个强大平台。新的 Automation 对象、集合、属性、方法、枚举和事件以及新的 ShapeSheet 单元格和函数为定义解决方案中元素的行为提供了更多选项。

在 Visio 2013 的各项新功能中,开发人员感兴趣的包括新文件格式、对主题的强大更新、更改形状功能(允许您使用其他形状替换形状)、新的形状效果、注释改进、SharePoint Server 2013 共同创作、可自定义图像剪辑、相对几何体、支持 Business Connectivity Services (BCS) 数据、对 Microsoft SharePoint Server 2013 中的 Visio Services 的更新以及复制页面功能。本主题简要概述了每个功能,并提及了与 Visual Basic for Applications (VBA) 中公开的功能相关的部分新 Visio 对象和成员。有关这些功能和随附的代码示例的信息,请参阅 Visio 开发人员中心

备注

Visio 2013 包括许多新的 ShapeSheet 单元格、行和函数以支持 Visio 中的新增功能。有关 ShapeSheet for Visio 2013 中的新增功能的详细信息,请参阅文章 Visio 形状表开发人员的新增功能

新文件格式

Visio 2013 引入了一种的文件格式,它基于"开放数据包约定"(OPC) 标准(ISO 29500,第二部分)和上一个 Visio XML 文件格式 (.vdx) 中的 XML 元素。它是压缩的,类似于用于其他 应用程序的文件格式的基于 XML 的文件格式。

由于此新文件格式受 Visio 2013 和 Microsoft SharePoint Server 2013 中的 Visio Services 支持,您可以将 Visio 绘图直接保存到 SharePoint Server 库,无需将该文件发布为 Visio Web 绘图 (.vdw)。即使如此,Visio Services 仍可以读取和显示 Visio Web 绘图文件。

该新文件格式包括以下文件类型(按扩展名):

  • .vsdx(Visio 绘图)

  • .vsdm(启用 Visio 宏的绘图)

  • .vssx(Visio 模具)

  • .vssm(启用 Visio 宏的模具)

  • .vstx(Visio 模板)

  • .vstm(启用 Visio 宏的模板)

通过使用对读取和写入文件格式包(例如 System.IO.Packaging)和解析 XML (System.Xml.Linq) 的现有支持,您可以编程方式使用新文件格式。

Visio 2013 保留读取旧文件格式(.vsd, .vss, .vst, .vdx, .vsx, .vtx, .vdw, .vwi)的功能。Visio 2013 不会保存到之前的 Visio XML 文件格式 (.vdx)。使用上一个 Visio XML 文件夹格式 (.vdx) 文件的解决方案或工具可能需要进行重构,以读取新的文件格式及其架构。

Visio Services 保留了在浏览器中显示 Visio Web 绘图 (.vdw) 格式的能力。它现在还呈现了新的 Visio 绘图 (.vsdx) 和 Visio 启用宏的 (.vsdm) 格式。

主题

主题在 Visio 2013 中已经过重新设计,以便利用更多效果和样式,包括 Shape Art 效果的集成。通过应用主题、使用主题变体对图表进行个性化设置以及通过"快速样式"突出显示单个形状,用户现在可以选择总体样式。ShapeSheet 开发人员可将这些功能用于 ShapeSheet 中的新函数和单元格。

您还可以在 PageShapeSelection 对象级别操纵主题。与主题一起使用的新 API 包括 Page.SetTheme 方法、Page.SetThemeVariant 方法、Shape.SetQuickStyle 方法和 Selection.SetQuickStyle 方法。

有关 Visio 2013 中新 API 的详细列表,请参阅本文的 Visio 对象模型更改部分。有关 Visio 2013 中新 ShapeSheet 单元格的详细信息,请参阅文章 Visio 形状表开发人员的新增功能

更改形状

Visio 2013 包括一个形状替换 API,它使您能够将模具中的一个或多个形状与另一个形状进行交换,同时保留用于原始形状的部分本地值,如形状文本、形状数据或形状格式。形状开发人员可以更新其自定义形状的 ShapeSheet 设置以指定这些形状的"更改形状"行为。新 API 包括 Shape.ReplaceShapesSelection.ReplaceShapes 方法以及 ReplaceShape 事件。

有关 Visio 2013 中新 API 的详细列表,请参阅本文的 Visio 对象模型更改部分。有关 Visio 2013 中新 ShapeSheet 单元格的详细信息,请参阅文章 Visio 形状表开发人员的新增功能

形状效果

Visio 2013 中添加了新的形状效果,例如棱台、3-D 旋转、发光、反射和草图。ShapeSheet 包括用于处理这些效果的新单元格。

有关 Visio 2013 中新 ShapeSheet 单元格的详细信息,请参阅文章 Visio 形状表开发人员的新增功能

评论功能

Visio 2013 包括新的评论功能框架。批注现在可以与特定形状或页面相关联。Visio 2013 包括两个新的对象:CommentsComment。用于以编程方式访问评论的新 API 包括 Document.CommentsPage.CommentsShape.CommentsPage.ShapeComments 属性。

Visio Services 包括从图表中的页面或形状读取注释的 JavaScript API。

有关 Visio 2013 中新 API 的详细列表,请参阅本文的 Visio 对象模型更改部分。

备注

注释将无法再通过 ShapeSheet 访问。

共同创作

Visio 2013 包括共同创作存储在 SharePoint 或 Microsoft OneDrive 上的图表的功能。开发人员可以访问提供由于共同创作产生的图表更改相关信息的 Document.AfterDocumentMerge 事件。解决方案开发人员还必须使用 Document ShapeSheet 上的 NoCoauth 单元格,禁用共同创作以满足其特定需求的功能。

有关 Visio 2013 中新 API 的详细列表,请参阅本文的 Visio 对象模型更改部分。

可自定义的图像剪辑

Visio 2013 支持定义自定义图像剪辑路径以将图像裁剪为任意形状。这扩展了 Visio 2010 的功能,此前它支持将图像裁剪成矩形。此功能在 ShapeSheet 中可用,方法是使用"外部图像信息"部分中的ClippingPath 单元格。

有关 Visio 2013 中新 ShapeSheet 单元格的详细信息,请参阅文章 Visio 形状表开发人员的新增功能

相对几何体

在以前版本的 Visio 中,形状几何体由依赖于形状高度或宽度的公式定义。例如,在 Visio 2010 中,很多内置 Visio 形状的顶点定义为将形状高度或宽度乘以常量。这些形状具有"几何体"部分,其中包含 MoveToLineTo 行(举例来说)以及 Width*1 和 Height*0 等公式。

Visio 2013 现在支持 ShapeSheet 中的相对几何体。形状开发人员现在可以使用相对几何体将几何体指定为简单值或公式,它们会自动乘以高度或宽度。形状顶点现在可以使用常量表示,例如,不再需要将顶点表示为形状宽度或高度的倍数。这使得开发人员能够更轻松地创建形状,并提供更好的性能和更小的文件。新行包括 RelMoveToRelLineTo 行,其中 X 和 Y 单元格值会自动分别乘以形状的宽度或高度。

有关 Visio 2013 中新 ShapeSheet 行的详细信息,请参阅文章 Visio 形状表开发人员的新增功能

支持 Business Connectivity Services (BCS) data

Visio 2013 图现在可以连接到 SharePoint Server 2013 服务器上的外部列表。外部列表是 SharePoint 的外部内容源(例如 SQL Server 表),它使用 Microsoft Business Connectivity Services (BCS) 连接到 SharePoint 列表。Visio Services 支持在数据更新时刷新 Visio 图的功能。

有关 Visio Services 中的新增功能的详细信息,请参阅文章 SharePoint 2013 中的 Visio Services。有关 Business Connectivity Services (BCS) 的详细信息,请参阅 SharePoint 2013 中的 Business Connectivity Services

Visio Services 中的改进

Microsoft SharePoint Server 2013 中的 Visio Services 进行了大量改进。前面已提到,Visio Services 支持新的 Visio 文件格式(包括 .vsdx 和 .vsdm)。Visio Services 已扩展数据刷新和重新计算,包括跨整个图表重新计算公式的功能。

有关 Visio Services 中新增功能的详细信息,请参阅文章 SharePoint 2013 中的 Visio Services

复制页面

在 Visio 2013 中,您现在可以在同一文档中复制某个页面及其所有形状。相应地,Page 对象具有新方法 Duplicate,它将复制页面并返回新的 Page 对象。

Visio 对象模型更改

已向 Visio 对象模型添加新的对象、属性、方法和事件,以提供对新 Visio 2013 功能的可编程性支持。此外,对象模型改进解决了开发人员频繁请求更改 Visio 平台的问题。

新成员

以下成员已添加到 Visio 对象模型中的现有对象。

表 2. Visio 对象模型增强功能

对象或集合

新成员

应用程序对象 (Visio)

Application.AfterReplaceShapes 事件 (Visio)

Application.BeforeReplaceShapes 事件 (Visio)

Application.QueryCancelReplaceShapes 事件 (Visio)

Application.ReplaceShapesCanceled 事件 (Visio)

ApplicationSettings 对象 (Visio)

ApplicationSettings.EnterCommitsText 属性 (Visio)

ApplicationSettings.SVGExportFormat 属性 (Visio)

文档对象 (Visio)

Document.AfterDocumentMerge 事件 (Visio)

Document.Comments 属性 (Visio)

Document.CompatibilityMode 属性 (Visio)

文档对象 (Visio)

Documents.AfterDocumentMerge 事件 (Visio)

Documents.AfterReplaceShapes 事件 (Visio)

Documents.BeforeReplaceShapes 事件 (Visio)

Documents.QueryCancelReplaceShapes 事件 (Visio)

Documents.ReplaceShapesCanceled 事件 (Visio)

InvisibleApp 对象 (Visio)

InvisibleApp.AfterReplaceShapes 事件 (Visio)

InvisibleApp.BeforeReplaceShapes 事件 (Visio)

InvisibleApp.QueryCancelReplaceShapes 事件 (Visio)

InvisibleApp.ReplaceShapesCanceled 事件 (Visio)

Page 对象 (Visio)

Page.AfterReplaceShapes 事件 (Visio)

Page.BeforeReplaceShapes 事件 (Visio)

Page.Comments 属性 (Visio)

Page.Duplicate 方法 (Visio)

Page.GetTheme 方法 (Visio)

Page.GetThemeVariant 方法 (Visio)

Page.QueryCancelReplaceShapes 事件 (Visio)

Page.ReplaceShapesCanceled 事件 (Visio)

Page.SetTheme 方法 (Visio)

Page.SetThemeVariant 方法 (Visio)

Page.ShapeComments 属性 (Visio)

网页对象 (Visio)

Pages.AfterReplaceShapes 事件 (Visio)

Pages.BeforeReplaceShapes 事件 (Visio)

Pages.QueryCancelReplaceShapes 事件 (Visio)

Pages.ReplaceShapesCanceled 事件 (Visio)

选择对象 (Visio)

Selection.ReplaceShape 方法 (Visio)

Selection.SetQuickStyle 方法 (Visio)

Shape 对象 (Visio)

Shape.ChangePicture 方法 (Visio)

Shape.Comments 属性 (Visio)

Shape.ReplaceShape 方法 (Visio)

Shape.SetQuickStyle 方法 (Visio)

新对象和枚举

以下对象已添加到 Visio 对象模型。

表 2. Visio 对象模型新增功能

对象

属性

方法

CoauthMergeEvent 对象 (Visio)

CoauthMergeEvent.BaseDocument 属性 (Visio)

CoauthMergeEvent.DownloadDocument 属性 (Visio)

CoauthMergeEvent.ObjectType 属性 (Visio)

CoauthMergeEvent.Stat 属性 (Visio)

CoauthMergeEvent.WorkingDocument 属性 (Visio)

注释对象 (Visio)

Comment.AssociatedObject 属性 (Visio)

Comment.AuthorInitials 属性 (Visio)

Comment.AuthorName 属性 (Visio)

Comment.AuthorSipAddress 属性 (Visio)

Comment.AuthorSMTPAddress 属性 (Visio)

Comment.Collapsed 属性 (Visio)

Comment.CreateDate 属性 (Visio)

Comment.Document 属性 (Visio)

Comment.EditDate 属性 (Visio)

Comment.ObjectType 属性 (Visio)

Comment.Stat 属性 (Visio)

Comment.Text 属性 (Visio)

Comment.Delete 方法 (Visio)

注释对象 (Visio)

Comments.Count 属性 (Visio)

Comments.Document 属性 (Visio)

Comments.Item 属性 (Visio)

Comments.ObjectType 属性 (Visio)

Comments.Stat 属性 (Visio)

Comments.Add 方法 (Visio)

Comments.DeleteAll 方法 (Visio)

ReplaceShapesEvent 对象 (Visio)

ReplaceShapesEvent.ObjectType 属性 (Visio)

ReplaceShapesEvent.ReplaceFlags 属性 (Visio)

ReplaceShapesEvent.ReplacementMaster 属性 (Visio)

ReplaceShapesEvent.SelectionSource 属性 (Visio)

ReplaceShapesEvent.Stat 属性 (Visio)

下表列出了 Visio 2013 中引入的新枚举和常量。

表 3. Visio 枚举新增功能

枚举

说明

VisQuickStyleColors 枚举 (Visio)

为主题中包含的颜色指定名称。

VisQuickStyleMatrixIndices 枚举 (Visio)

为 Visio 2013 提供的主题和变体指定名称。

VisReplaceFlags 枚举 (Visio)

指定"更改形状"操作的行为。

VisSVGExportFormat 枚举 (Visio)

指定将图表导出到 SVG 时包括或排除 Visio 标记。

不建议使用的对象和成员

下表列出了 Visio 2013 中不建议使用的对象和成员。不建议使用的成员列中仅列出不建议使用的对象成员。

表 4. Visio 对象模型弃用功能

对象或集合

不建议使用的成员

Window 对象

PageTabWidth 属性

其他资源