3

我目前正在 Visio 2010 中创建自定义容器形状,但在获得正确的大小调整行为时遇到了一些问题。我的容器由一个主矩形和右上角的一个小三角形组成(见图)。这两个形状都是分组的。

由矩形和三角形组成的自定义容器

调整该组的大小时,我希望调整矩形的大小,但三角形应保持其原始大小和纵横比,并保持“附加”到矩形的一侧。

当我将三角形的调整大小行为设置为“使用组设置”(默认)时,调整大小时它会变形:

三角形变形

当我将三角形的调整大小行为设置为“仅重新定位”时,它不会保持附加到矩形:

三角形分离

有什么办法可以得到想要的行为?

4

3 回答 3

6

如果要将三角形保持在相同的相对位置和相同的绝对大小,则需要使用 shapesheet。

您感兴趣的公式将是矩形的 PinX、PinY、宽度和高度。宽度和高度应该保持不变,所以公式应该只是 =GUARD(0.25 in.),在这里你用任何宽度或高度替换 0.25。

当您对形状进行分组时,Visio 会自动设置公式来拉伸子形状,并按照组形状大小的比例移动它们。因此,如果您查看三角形的 PinX 公式,它可能类似于: =Sheet.1!Width*0.95 。这只是意味着三角形的 X 位置将始终位于父形状宽度的 95% 处。

但这不是你想要的。您想要的是三角形始终位于矩形的右边缘。因此,要做到这一点,您的公式只需计算为矩形的右边缘(其宽度)加上三角形宽度的一半(引脚位置默认为形状的中点)。

因此,要制作公式,您需要矩形子形状的 ID,您可以通过访问矩形的 Format->Special 对话框找到它。一旦你得到这个数字,三角形的 PinX 公式应该只是 =GUARD(Sheet.RectangleID!Width+(Width/2))

我认为三角形的 PinY 应该按原样设置,只要宽度和高度受到保护。

于 2013-06-19T18:44:12.803 回答
2

Edit the shapesheet for the triangle so the width is a function of the height. W=H*AspectRatio

Make sure you protect the cell so that it does not change.

于 2013-06-19T12:26:10.617 回答
-1

似乎这是预期的行为:http: //blogs.msdn.com/b/visio/archive/2007/01/30/working-with-resizemode.aspx

于 2013-06-19T07:21:12.393 回答