版本
Visio 2007 SP3
问题
用Visio绘制类图,当函数的参数过多时,类图会变得很宽,甚至超出纸张的边缘。此时不得不减小类图的宽度。
但是,当减小类图的宽度时,自动换行的文字会溢出到图形外部,而且此时无法调整类图的高度!故障如下图所示:
调整宽度前(正常):
调整宽度后(文字溢出):
解决方法
警告
(1)修改涉及到Visio的底层数据,修改前请备份原文件。
(2)由修改引发的任何问题,需自行承担风险。
1.单击类图2次,选中该类图的“方法区”。(注意:不是选中整个类图!)
然后,依次点击:窗口->显示ShapeSheet
2.在ShapeSheet窗口中,单击Shape Transform小节中的Height属性单元格,然后通过顶部的输入框修改公式:
3.原公式为:
=GUARD(IF(BITAND(Sheet.1!User.UMLSuppressOption,8),0,MAX(TEXTHEIGHT(TheText,10),4.45mm)))
删掉公式中的GUARD,公式变成:
=(IF(BITAND(Sheet.1!User.UMLSuppressOption,8),0,MAX(TEXTHEIGHT(TheText,10),4.45mm)))
然后单击绿色的“打勾”按钮保存修改:
4.把Protection小节中的LockHeight由1改为0。
5.关闭ShapeSheet窗口,现在可以调整类图的“方法区”的高度了:
调整高度后的最终效果:
问题:如果修改后,图形出现混乱,如何快速恢复原始图形?
删除该类图,然后在左侧的“模型资源管理器”,把相应类拖动到右侧的绘图区,即可重新创建该类的类图。(会丢失部分图形样式等信息)
参考资料
http://stackoverflow.com/questions/16455327/how-to-resize-my-uml-class-diagram-on-ms-visio07