在相关的 xaml js 文件(例如 xaml_1.js)中有一个 handleMouseUp 函数,它从 (XAML) 'name' 字符串中读取形状 ID,然后在 frameset.js 中调用 OnShapeClick。此方法对所有基于 js 的 Save as web 输出类型都通用,然后调用其他方法来填充详细信息表或检索 data.xml 中的超链接。如果您查看 frameset.js 中的 FindShapeXML 函数,您会发现它根据页面和形状 ID 获取适当的数据(请注意,根据 Visio 本身,形状 ID 对于页面是唯一的)。
在创建数据绑定或动态形状文本方面,@slfan 强调的字形问题的一种解决方法是阻止输出文本。例如,在 Visio 中运行 Save As Web 之前,您可以遍历所有形状并将其HideText ShapeSheet 单元格设置为 true。这将阻止生成所有字形 xaml,并且您仍然可以访问 data.xml 中的文本字符串。我想您不会从正确的字体缩放中受益,但这取决于您的情况。如果获得正确的比例真的很重要,那么您可以解析字形元素的 RenderTransform 属性(在属性语法而不是属性元素语法中描述)。
字形在那里(我猜),因为它反映了 Visio 在应用程序中的工作方式,即在 Visio 中,您可以选择形状文本中的单个字符并应用不同的字体和格式,但如果您不需要,我会很想放弃 glyphs 集合,只使用 @slfan 建议的 TextBlock 。