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

调整此组的大小时,我希望矩形调整大小,但三角形应保持其原始大小和宽高比,并保持"附加"到矩形的一侧.
当我将三角形的调整大小行为设置为"使用组设置"(默认)时,它会在调整大小时变形:

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

有什么方法可以得到理想的行为吗?
如果要将三角形保持在相同的相对位置,并且保持相同的绝对大小,则需要使用形状表.
您感兴趣的公式将是矩形的PinX,PinY,Width和Height.宽度和高度应该保持不变,因此公式应该是= GUARD(0.25英寸),在这里你可以用宽度或高度替换0.25.
对形状进行分组时,Visio会自动设置公式以拉伸子形状,并将它们移动为组形状大小的比例.因此,如果您查看Triangle的PinX公式,它可能类似于:= Sheet.1!Width*0.95.这只意味着三角形的X位置始终为父形状宽度的95%.
但那不是你想要的.你想要的是三角形总是坐在矩形的右边缘.所以要做到这一点,你的公式必须计算为矩形的右边缘(宽度)加上三角形宽度的一半(Pin位置默认是你的形状的中点).
因此,要制作公式,您需要矩形子形状的ID,您可以通过访问矩形的"格式" - >"特殊"对话框找到该ID.获得该数字后,三角形的PinX公式应为= GUARD(Sheet.RectangleID!Width +(Width/2))
我认为只要宽度和高度受到保护,三角形的PinY都应该按原样设置.