gpt4 book ai didi

c# - 在用户控件中配置 Brush 的更好方法是什么

转载 作者:太空狗 更新时间:2023-10-29 22:05:20 26 4
gpt4 key购买 nike

在 Paint 事件中使用新的 Brush 是不是更好的方法,即

protected override void OnPaint(PaintEventArgs e) {
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
using (SolidBrush b = new SolidBrush(Color.FromArgb(129, 242, 121))) {
for (int i = 0; i < 12; i++) {
e.Graphics.FillPath(b, path[i]);
}
}
base.OnPaint(e);
}

或在顶部定义一次并在 Dispose 方法中进行处理,即

SolidBrush _brush;
protected SolidBrush Brush {
get {
if (_brush == null)
_brush = new SolidBrush(Color.FromArgb(129, 242, 121));
return _brush;
}
}

最佳答案

创建和销毁笔和画笔等绘图对象的成本非常低,大约需要一微秒。实际进行绘图的代码成本的一小部分,通常以毫秒为单位。因此,您应该避免存储它们,因为它们只会占用操作系统 GDI 对象堆中的宝贵空间,这是一种需要由所有正在运行的进程共享的资源。唯一创建成本高昂的绘图对象是字体。但是,Winforms 通过在内部缓存字体来解决这个问题。

保持一致,始终将 using 语句应用于您创建的绘图对象。

关于c# - 在用户控件中配置 Brush 的更好方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8253398/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com