在我的应用程序中,我希望用户从用户系统中可用的字体列表中选择一种字体,并将该字体设置为 richtextbox。 我试过了::
System.Drawing.Text.InstalledFontCollection fonts = new System.Drawing.Text.InstalledFontCollection();
foreach (FontFamily family in fonts.Families)
{
comboBox1.Items.Add(family.Name);
}
和
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
richTextBox1.Font = new Font(comboBox1.SelectedText, 14);
}
但它改变了文本的默认行为。例如:文本包括粗体和斜体标题。使用上述代码设置字体会将文本转换为常规形式。 我的问题是,尽可能保持文本的行为和以前一样,而不是通过将粗体文本保持为粗体和将斜体保持为斜体来以常规形式更改完整文本。
最佳答案
SelectedText
用于 ComboBox 文本属性的突出显示部分。可能不是你想要的:
richTextBox1.Font = new Font(comboBox1.Text, 14);
此外,如果您只想让 RichTextBox 的突出显示部分具有新字体:
richTextBox1.SelectionFont = new Font(comboBox1.Text, 14);
如果突出显示文本的任何部分混合了粗体和斜体以及不同大小等,则 RichTextBox 不会很好地保留这些属性。参见 How do I maintain RichText formatting (bold/italic/etc) when changing any one element?
关于c# - 在 c# winform 应用程序中使用安装的字体时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11061698/