/// <summary>
/// Присвоить текст выноске. Для новых выносок вызовите предварительно SetDatabaseDefaults
/// </summary>
public static void SetText(this MLeader ml, string text)
{
MText mt;
if (ml.HasContent() && ml.ContentType == ContentType.MTextContent)
mt = ml.MText; // клонировать не надо - MLeader сам делает клон
else
{
ml.ContentType = ContentType.MTextContent;
mt = new MText();
if (ml.TextStyleId.IsNull) mt.SetDatabaseDefaults(); // только на аварийный случай
else mt.TextStyleId = ml.TextStyleId; // стиль текста следует брать из стиля выноски. он обычно не совпадает DatabaseDefaults
mt.Color = ml.Color; // иначе будет черный не смотря ни на какие стили
mt.TextHeight = ml.TextHeight; // иначе будет 0
}
if (text.StartsWith("%<\\")) // это поле
{
Field f = new Field(text, true);
f.Evaluate();
mt.SetField(f);
}
else
mt.Contents = text;
ml.ContentType = ContentType.MTextContent;
ml.MText = mt;
mt.Dispose(); // MLeader не сохраняет этот объект, а только копирует его свойства себе. Поэтому надо удалить
}