2

Я пытаюсь найти способ заставить текст в форме Visio сжиматься, чтобы соответствовать ширине формы, иначе оставить шрифт по умолчанию.

Есть ли функция таблицы форм, которую я могу использовать, чтобы изменить размер шрифта текста, чтобы он не превышал ширину формы?

В конечном итоге я хотел бы иметь возможность назначить это при автоматическом построении фигуры с использованием VBA, поэтому, если есть какой-то способ получить ширину текста таким образом, возможно, я смогу это сделать.

2 ответа2

1

Я не знаю пути к размеру текста в форме , если не изменить размер шрифта, но есть способы размера формы в тексте вместо наоборот.

1

Вы можете изменить размер шрифта текстового блока, используя автоматизацию, если текст превышает размер фигуры. Я обнаружил, что следующие работы.

Откройте форму фигуры (Окно-> Показать таблицу) и добавьте пользовательский раздел (Вставка-> Раздел-> Пользовательские ячейки). Поместите эту формулу в ячейку значения для пользователя.Row_1:

= Min(1, высота / TextHeight (ЬЬеТехЬ, ширина)))

После изменения текста формы получите значение пользовательской ячейки. в c #:

двойной масштаб = shape.get_CellsSRC((короткий)IVisio.VisSectionIndices.visSectionUser, (короткий)IVisio.VisRowIndices.visRowUser, (коротко)IVisio.VisCellIndices.visUserValue).ResultIU;

Затем установите шрифт и TextMargins (для любых, которые не являются нулевыми) с помощью следующего (при условии, что нормальный размер шрифта равен 12, а левое поле равно 4pt .:

shape.get_CellsSRC((короткий)IVisio.VisSectionIndices.visSectionCharacter, 0, (короткий)IVisio.VisCellIndices.visCharacterSize).Формула U = (шкала * 12).ToString () + "pt";

shape.get_CellsSRC((короткий)IVisio.VisSectionIndices.visSectionObject, (короткий)IVisio.VisRowIndices.visRowText, (короткий)IVisio.VisCellIndices.visTxtBlkLeftMargin).Формула U = (шкала * 4).ToString () + "pt";

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .