在插件中创建没有描述或填充的图表图像

Creating image of diagram without description or padding in addin

我想知道如何在插件中以编程方式编辑 EA 中的设置。

我已经有一个正常运行的插件,每次更改图表时都会创建一个新图像,覆盖旧版本。 这是通过以下命令在 C# 中完成的:

    projectInterface.PutDiagramImageToFile(GUID, path, 1);

看起来像这样:

但是我想要一张没有填充且左上角没有框的图像,如下所示:

虽然这可以通过编辑设置来完成,但我想保留用户设置,这意味着我可能会执行以下操作:

  1. 记录设置
  2. 编辑设置
  3. 创建图表图像
  4. 将设置改回原来的设置

所以... 我如何编辑这些设置? (首选项 -> 图表 -> 图框 -> 打印图像和图表填充)

也非常欢迎提出想法:)

你不能轻易达到你想要的。用于创建图表边框的标志存储在注册表中:

[HKEY_CURRENT_USER\Software\Sparx Systems\EA400\EA\OPTIONS]
"SAVE_IMAGE_FRAME"=dword:00000001 

您可以更改此设置,但 EA 只会在重新启动时识别更改。如果您 运行 来自 EA 外部的脚本,您将需要更改注册表,启动 EA 实例,执行您需要的操作并最终改回标志。从 EA 内部来看,您可能不走运。 (不过你可以试试。)

我查看了帮助和图表Properties/Diagram/Hide它说的边框

Click on any or all of the checkboxes to specify which saved images of your diagrams will automatically include a diagram frame around them - those saved to disk, those printed out, and/or those saved to the default system clipboard.

A diagram frame is a labeled outline around the diagram image, providing both a border and a reference.

显然它并没有按照它说的去做。您可能会报告错误。

留下我之前的回答,以免别人误入歧途....

旧答案 - 看来“显而易见”的图表设置不会按照它说的去做 - EAUI :-(

您需要直接访问表格。

SELECT ShowBorder FROM t_diagram WHERE Diagram_ID = <the id>

其中 <the id> 是图表的图表 ID。它将 return TrueFalse 取决于当前设置。

要实际更改它,您需要调用

Repository.Execute("UPDATE t_diagram SET ShowBorder=<the altered value>")

Execute 是一个未记录但有效的操作,在 API(再次)不提供属性的情况下无法避免。