在 Visio 中使文本适合形状

在 Visio 中使文本适合形状

我正在尝试找到一种方法来让 Visio 形状中的文本缩小以适合形状的宽度,否则将字体保留为默认字体。

是否有一个形状表函数可以用来更改文本的字体大小,以使其不超过形状的宽度?

最终,我希望能够在使用 VBA 自动构建形状时分配它,因此如果有某种方法可以通过这种方式获取文本的宽度,也许我可以这样做。

答案1

如果文本超出形状的大小,您可以使用自动化功能调整文本块的字体大小。我发现以下方法有效。

打开形状的形状表(窗口->显示形状表)并添加用户部分(插入->部分->用户定义单元格)。将此公式放入 User.Row_1 的值单元格中:

=Min(1,高度/TEXTHEIGHT(文本,宽度)))

形状文本改变后,获取用户单元格的值。在c#中:

双倍比例 = 形状.get_CellsSRC((短)IVisio.VisSectionIndices.visSectionUser,(短)IVisio.VisRowIndices.visRowUser,(短)IVisio.VisCellIndices.visUserValue).ResultIU;

然后设置字体和 TextMargins(对于非零的),如下所示(假设正常字体大小为 12,左边距为 4pt):

形状.get_CellsSRC((short)IVisio.VisSectionIndices.visSectionCharacter, 0, (short)IVisio.VisCellIndices.visCharacterSize).FormulaU = (scale*12).ToString() + "pt";

形状.get_CellsSRC((short)IVisio.VisSectionIndices.visSectionObject, (short)IVisio.VisRowIndices.visRowText, (short)IVisio.VisCellIndices.visTxtBlkLeftMargin).FormulaU = (scale * 4).ToString() + "pt";

答案2

我不知道有什么方法可以让文本适应形状,除非你改变字体大小,但有办法根据文本调整形状大小而不是相反。

答案3

除了改变字体大小本身之外,我发现另外两个可以使文本适合形状的控件是:

首先,单击包含文本的形状,然后从任务栏中选择主文本按钮(显示全套文本选项的按钮)。

选择“字符”选项卡,将“缩放百分比”更改为使文本足够小但可读性足够高的值。接下来,单击“段落”选项卡,修改任何“缩进”或“间距”值以使文本适合。我发现“行百分比”最有效。注意:对于上述更改,请使用“应用”按钮查看值的实际显示效果,然后单击“确定”按钮关闭“文本”菜单对话框。

相关内容