Winforms: добавить RTF \ line на ручное RichTextbox RESIZE без потери форматирования ⇐ C#

Место общения программистов C#
Anonymous
Winforms: добавить RTF \ line на ручное RichTextbox RESIZE без потери форматирования

Сообщение Anonymous »

Я хочу обнаружить горизонтальное ручное изменение размера Richtextbox в приложении Winforms и вставить разрыв линии RTF (\ line), когда текст превышает видимую ширину - без использования WordWrap и без потери исходного RTF -стиля (жирный, италярный, цвета и т. Д.). управление, поскольку включение WordWrap отключает горизонтальное изменение размера. Иногда форматирование теряется (например, жирный, цвета, изменения шрифта). < /P>
Как я: < /p>
1-, когда текст превышает ширину управления на ручном размере, < /p>
2- insert \ line rtf разрывы на этих позициях, < /p>


0 ? currentLine + " " : "") + word;
SizeF size = g.MeasureString(testLine, temp.Font);

if (size.Width > temp.ClientSize.Width)
{
newRtfContent.Append(currentLine + @"\line ");
currentLine = word;
}
else
{
currentLine = testLine;
}
}

newRtfContent.Append(currentLine + @"\line ");
}
}

string newRtf = ReinjectRtfBody(temp.Rtf, newRtfContent.ToString());
richTextBox1.Rtf = newRtf;
}
}

private string ReinjectRtfBody(string baseRtf, string newBody)
{
int bodyStart = baseRtf.IndexOf(@"\viewkind");
if (bodyStart == -1) return baseRtf;

int bodyEnd = baseRtf.LastIndexOf('}');
if (bodyEnd == -1) return baseRtf;

string header = baseRtf.Substring(0, bodyStart);
string footer = baseRtf.Substring(bodyEnd);
return header + newBody + footer;
}


Подробнее здесь: https://stackoverflow.com/questions/796 ... formatting

Вернуться в «C#»