[英]Change RichTextBox font family only not FontSize
如何僅更改RichTextBox(RTB)中的字體系列,保持字體大小不變? 我有一個RTB,可以有不同的字體和字體大小的文本,我想改變所有的內容,以擁有一個新的字體系列,但保留他們從用戶的任何大小。 我怎么能實現這個目標? 我知道一個SelectionFont屬性,但Font構造函數的每個重載都需要字體大小。
RichTextBox rtb = new RichTextBox();
// some code that adds various text of different fonts and font sizes
rtb.SelectAll();
rtb.SelectionFont = new Font("arial", ??);
此外,我確實在這篇SO帖子中遇到了Lars Tech的解決方案,但我認為實現該功能太復雜,太多工作。
如果你想避免使用pinvoking解決方案,那么你必須單獨遍歷字符。 為避免閃爍,您可以使用屏幕外RichTextBox控件來應用更改:
using (RichTextBox tmpRB = new RichTextBox()) {
tmpRB.SelectAll();
tmpRB.SelectedRtf = rtb.SelectedRtf;
for (int i = 0; i < tmpRB.TextLength; ++i) {
tmpRB.Select(i, 1);
tmpRB.SelectionFont = new Font("Arial", tmpRB.SelectionFont.Size);
}
tmpRB.SelectAll();
rtb.SelectedRtf = tmpRB.SelectedRtf;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.