1

我想在Microsoft Visio 2013 x64中创建一个新的 Master Shape,就像UML Class Stencil 中的 Class Master Shape一样。

将类主形状添加到页面时,它会自动附加两个成员和一个分隔符主形状。此外,可以在其中添加更多的成员和分隔主形状。

我在想它通过一些编写的 VBA 代码本身添加了其他主形状;但是,当我检查以下完整路径中的UML 类(公制)模板文件时,我发现它没有使用 VBA 代码,根本没有。

D:\Program Files\Microsoft Office\Office15\Visio Content\1033\USTRME_M.VSSX

文件扩展名是“Visio Stencil (.vssx)”而不是“Visio Macro-Enabled Stencil (.vssm)”;所以,它不能有 VBA 代码。

我知道我可以通过在 ShapeSheet 的 Actions 部分添加一些新行来做一些事情;但是,不存在为类形状添加新的成员和分隔主形状的任何操作行。

在上下文菜单中有两个附加选项且在 ShapeSheet 中没有任何相关行的分隔符形状

图 1 - 上下文菜单中有两个附加选项的分隔符形状,ShapeSheet 中没有任何相关行

显示条形以插入分隔符形状

图 2 - 显示一个栏以插入分隔符形状

成员形状在上下文菜单中有两个附加选项,但在 ShapeSheet 中没有任何相关行

图 3 - 上下文菜单中有两个附加选项的成员形状,但 ShapeSheet 中没有任何相关行

显示条形以插入成员形状

图 4 - 显示一个插入成员形状的栏

当我点击放置在页面中的类形状时,它在上下文菜单中有两个新选项:

  • 显示模板参数
  • 显示刻板印象

我为他们看到了相关的操作部分行。

使用上下文菜单中的两个附加选项和 ShapeSheet 中的相关行对 Shape 进行分类

图 5 - 上下文菜单中具有两个附加选项的类 Shape 以及 ShapeSheet 中的相关行

当我点击添加类形状中的成员和分隔符形状时,可以看到“在之前/之后插入“成员/分隔符”但是,当我直接在页面上(不在类形状中)添加成员和分隔主形状时,当我点击它们时,在上下文菜单中看不到额外的选项。

上下文菜单中没有其他选项的分隔符形状

图 6 - 上下文菜单中没有其他选项的分隔符形状

上下文菜单中没有其他选项的成员形状

图 7 - 上下文菜单中没有附加选项的成员形状

我检查了他们的 ShapeSheet 并找不到上述操作的任何相关行。

现在,我的问题是,如何在没有任何 VBA 代码(如 Microsoft 创建的 UML 类模板中的类形状)的情况下创建一个能够接受其他一些主形状的新主形状?

4

1 回答 1

2

此功能在 Visio 中称为“列表”(结构化图表)(在 Visio 2010 中引入)。要允许这种功能(允许某些形状“接受”其他形状,类似于“类”形状),您需要通过在其中设置用户属性 User.msvStructureType="List" 来将形状声明为“列表”形状表。要声明它应该接受的项目类型,您还需要设置单元格 User.msvSDListItemMaster = USE("Your item's master name")。意味着,您可以只绘制一个普通矩形(例如),然后通过添加这两个用户属性将其转换为“列表”。列表/容器有更多可用选项(例如边距、行为等)。

MSDN 文章详细描述了此功能:http: //blogs.msdn.com/b/visio/archive/2010/01/12/custom-containers-lists-and-callouts-in-visio-2010.aspx

在此处输入图像描述

于 2015-01-19T19:28:37.393 回答