Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否可以使用TextRenderingHint在RichTextBox上获得抗锯齿?_C#_Winforms_Antialiasing - Fatal编程技术网

C# 是否可以使用TextRenderingHint在RichTextBox上获得抗锯齿?

C# 是否可以使用TextRenderingHint在RichTextBox上获得抗锯齿?,c#,winforms,antialiasing,C#,Winforms,Antialiasing,我一直在尝试在Windows窗体应用程序的各种控件中启用文本的抗锯齿 我做了一些研究,似乎解决方案是创建一个自定义控件并重写OnPaint()以修改textrendinghint。我在标签和按钮控件上成功地使用了这种方法,但它似乎不适用于文本框或RichTextBox控件 下面是我用来在自定义标签控件中启用抗锯齿的代码: public partial class CustomLabel : Label { private System.Drawing.Text.TextRendering

我一直在尝试在Windows窗体应用程序的各种控件中启用文本的抗锯齿

我做了一些研究,似乎解决方案是创建一个自定义控件并重写
OnPaint()
以修改
textrendinghint
。我在
标签
按钮
控件上成功地使用了这种方法,但它似乎不适用于
文本框
RichTextBox
控件

下面是我用来在自定义
标签
控件中启用抗锯齿的代码:

public partial class CustomLabel : Label
{
    private System.Drawing.Text.TextRenderingHint _hint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
    public System.Drawing.Text.TextRenderingHint TextRenderingHint
    {
        get { return this._hint; }
        set { this._hint = value; }
    }

    protected override void OnPaint(PaintEventArgs pe)
    {
        pe.Graphics.TextRenderingHint = TextRenderingHint;
        base.OnPaint(pe);
    }
}
TextBox
RichTextBox
使用相同的方法似乎不起作用


我正在创建的应用程序主要处理文本输入,我真的希望对所有显示的文本使用抗锯齿,特别是输入到TextBox或RichTextBox或自定义控件中的文本

为什么不在Windows上启用ClearText?默认情况下,它们不是在某种程度上消除了别名吗?我启用了cleartype,但使用了TextRenderingHint。AntiAliasGridFit使文本看起来明显更好。因此,我刚刚发现了WPF,我很高兴发现,到目前为止,我尝试的所有控件中的文本都消除了别名。所以看起来我将在WPF中重新构建我的应用程序:)