集中设置graphics.qualityxxx设置,而不是从picturebox.paint中



我有一个picturebox控件,我用它的油漆事件根据应用程序状态显示一些插图。我需要设置以下属性:

private void PictureBox_Paint (object sender, System.Windows.Forms.PaintEventArgs e)
{
    e.Graphics.CompositingMode    = CompositingMode.SourceOver;
    e.Graphics.CompositingQuality = CompositingQuality.HighQuality;
    e.Graphics.InterpolationMode  = InterpolationMode.HighQualityBicubic;
    e.Graphics.SmoothingMode      = SmoothingMode.HighQuality;
    e.Graphics.TextRenderingHint  = TextRenderingHint.AntiAlias;
}

这可以正常工作,但是每当疼痛事件发射时,这些属性都是设置的,这是非常频繁的。有没有办法集中设置这些属性?请注意,如果用户重新大小窗口大小,则可以更改Picturebox控件的大小。

我知道我可以将图像与picturebox控件相关联,并保留对该图像的图形对象的引用。但是我想找出上述是否可以没有明确的图像。

我认为没有更好的解决方案,除非@Sinatr指出,否则您需要对多个Paint事件进行相同的设置。但这只是在一个普通的电话中重构。

您无法进入该Graphics对象的创建,它是由图形子系统创建的,因此您已经尽力做到了...在当时重置属性。

<</p> <</p>

可以考虑使用映射器模式。它经常用于企业应用程序,但我认为它在家庭项目中很有用。

众所周知的库是自动应用程序,但您可以简单地实现自己的映射器而无需冗余功能。

最新更新