c#中重用或处理自定义字体的有效方法
本文关键字:字体 有效 方法 自定义 处理 | 更新日期: 2023-09-27 18:09:07
我们有一个c#表单应用程序,它使用了很多控件和自定义字体,每个控件都有不同的大小。问题是,每当重新创建控件时,不断增长的FONT gdi对象计数都会导致OutOfMemory异常(一旦超过10,000个计数-使用Bear gdi进行测试)。我尝试了以下选项,但字体gdi不保持一致:
-
通过在静态类中将每种字体声明为静态变量来重用特定字体类型/大小的每种字体
static Font Robo_13Reg_Font= new Font("Roboto", 13F, System.Drawing.FontStyle。定期,System.Drawing.GraphicsUnit。像素,((字节)(0)));
-
创建一个本地字体变量并在使用完成后处理
- 从标签中重用字体到所需的控件并处置标签,如下面的代码
public static void getRobo_13Reg_Font(Control addFontTo)
{
try
{
if (Robo_13Reg_Font == null)
{
Robo_13Reg_Font = new Label();
Robo_13Reg_Font.Font = new Font("Roboto", 13F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel, ((byte)(0)));
}
addFontTo.Font = Robo_13Reg_Font.Font;
Robo_13Reg_Font.Dispose();
Robo_13Reg_Font = null;
}
finally
{
}
}
感谢所有的输入!
检查你是否正在创建大量的工具提示实例(新工具提示)并为你的应用程序中的工具提示分配字体-这也会为每个正在创建的工具提示实例创建字体GDI对象,因为我有类似的问题。