Я хочу обнаружить горизонтальное ручное изменение размера 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
Winforms: добавить RTF \ line на ручное RichTextbox RESIZE без потери форматирования ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение