Você pode redimensionar a fonte do bloco de texto usando a automação se o texto exceder o tamanho da forma. Eu achei que os seguintes trabalhos.
Abra a folha de formas da forma (Window- > Show Shapesheet) e adicione a seção do usuário (Insert- > Section- > User-defined Cells). Coloque esta fórmula na célula de valor para User.Row_1:
= Min (1, Altura / TEXO PESO (OTexto, Largura)))
Após o texto da forma ser alterado, obtenha o valor da célula do usuário. em c #:
escala dupla = shape.get_CellsSRC ((curto) IVisio.VisSectionIndices.visSectionUser, (abreviado) IVisio.VisRowIndices.visRowUser, (abreviado) IVisio.VisCellIndices.visUserValue) .ResultIU;
Em seguida, defina a fonte e os TextMargins (para qualquer um que não seja zero) com o seguinte (supondo que o tamanho normal da fonte seja 12 e a margem esquerda seja 4pt.:
shape.get_CellsSRC ((curto) IVisio.VisSectionIndices.visSectionCharacter, 0, (abreviado) IVisio.VisCellIndices.visCharacterSize) .FormulaU = (escala * 12) .ToString () + "pt";
shape.get_CellsSRC ((curto) IVisio.VisSectionIndices.visSectionObject, (curto) IVisio.VisRowIndices.visRowText, (curto) IVisio.VisCellIndices.visTxtBlkLeftMargin) .FormulaU = (escala * 4) .ToString () + "pt" ;