如何在c#中调用GDipDrawString方法
本文关键字:调用 GDipDrawString 方法 | 更新日期: 2023-09-27 17:57:50
我想调用原生gdi+方法来提高文本绘制的性能。有人能举个例子吗?我从参考源中找到了以下代码。我想在C#中使用这种方法来提高性能。我怎样才能做到这一点?
[DllImport(ExternDll.Gdiplus, SetLastError=true, ExactSpelling=true,
CharSet = System.Runtime.InteropServices.CharSet.Unicode)] // 3 = Unicode
[ResourceExposure(ResourceScope.None)]
internal static extern int GdipDrawString(HandleRef graphics,
string textString, int length, HandleRef font,
ref GPRECTF layoutRect, HandleRef stringFormat, HandleRef brush);
我不知道如何为HandleRef
类创建对象。请给我建议一下?
目前我使用以下代码来绘制字符串。
Graphics.DrawString(text, font, brush, rect, format);
DrawString最简单的形式如下:
public void DrawString (string, Font, Brush, PointF);
其中string是要绘制的文本,Font和Brush是用于绘制文本的字体和画笔,PointF是文本的起点。
图纸文本:
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
e.Graphics.DrawString("Hello GDI+ World!",
new Font("Verdana", 16),
new SolidBrush(Color.Red),
new Point(20, 20));
}
这本书将提供更多信息图形编程与GDI+
HandleRef本质上是句柄的IntPtr和句柄所属对象的引用。使用HandleRef可以防止GC收集对象,直到本机方法完成为止。
参考链接:HandleRef