C# 在WinC窗体应用程序中使用已安装字体时出现问题

C# 在WinC窗体应用程序中使用已安装字体时出现问题,c#,.net,winforms,fonts,C#,.net,Winforms,Fonts,在我的应用程序中,我希望用户从用户系统中可用的字体列表中选择一种字体,并将该字体设置为richtextbox。 我试过:: System.Drawing.Text.InstalledFontCollection fonts = new System.Drawing.Text.InstalledFontCollection(); foreach (FontFamily family in fonts.Families) { comboB

在我的应用程序中,我希望用户从用户系统中可用的字体列表中选择一种字体,并将该字体设置为richtextbox。 我试过::

    System.Drawing.Text.InstalledFontCollection fonts = new System.Drawing.Text.InstalledFontCollection();
        foreach (FontFamily family in fonts.Families)
        {
           comboBox1.Items.Add(family.Name);
        }

但它改变了文本的默认行为。例如:文本包括粗体和斜体的标题。使用上述代码设置字体会将文本转换为常规格式。
我的问题是,尽可能保持文本的行为与以前一样,而不是通过将粗体文本保持为粗体,将斜体文本保持为斜体来更改常规形式的完整文本。

有一个选项可以使用字体原型初始化字体。尝试将字体原型定义为具有所需大小和样式的micrsoftsantsserif字体,然后将新字体作为第二个参数传递。msdn拥有所有信息

SelectedText用于组合框文本属性的突出显示部分。可能不是你想要的:

richTextBox1.Font = new Font(comboBox1.Text, 14);
此外,如果您只希望RichTextBox的突出显示部分具有新字体,请执行以下操作:

richTextBox1.SelectionFont = new Font(comboBox1.Text, 14);
如果高亮显示的文本的任何部分混合了粗体和斜体以及不同的大小等,RichTextBox不会很好地保留这些属性。看

richTextBox1.SelectionFont = new Font(comboBox1.Text, 14);