我有一个带有几个控件的窗体,例如标签和按钮。绘制表单时,在Paint事件处理程序中,我可以使用PaintEventArgs e
来:
private void Form_Paint(object sender, PaintEventArgs e)
{
e.Graphics.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;
SolidBrush brush = new SolidBrush(Color.Black);
e.Graphics.DrawString("Test String", font, brush, 100, 100);
}
这样我就可以使用Graphics.DrawString()
创建符合我设置的属性的字符串,例如TextRenderingHint
。
如何更改表单,标签和按钮等所有控件的Graphics
属性,以便在绘制/渲染它们时,它们符合我想要的Graphics
属性他们到?
具体来说 - 我想更改表单上控件的TextRenderingHint
。如果为Form
本身做这件事包括所有控制都是可能的,我会同样高兴。
答案 0 :(得分:1)
如何更改窗体上的所有控件的图形属性,标签和按钮等,以便在绘制/渲染它们时,它们符合我想要的图形属性?
你不能。
正如Hans在评论中所说,Winforms的内置控件大多只是现有本机Windows控件类的瘦包装。它们将使用当前用户设置进行渲染,这些设置对于所有应用程序都是全局的。
即使它们不是,但是另一个问题是Graphics
实例对于每个Paint
事件和每个基于窗口的控件(即大多数)都是新的他们获得了一个Graphics
实例,对应该控件的窗口HDC
事件的本地WM_PAINT
。没有"全球"您可以更改的Graphics
个实例,然后会针对每个Paint
事件重复使用该实例。