首页 > 解决方案 > 将 TDirect2DCanvas 与 Font Awesome 图标一起使用

问题描述

我正在用 Delphi XE 10.2 编写一个应用程序,它使用Direct2D 画布Font Awesome 图标。GDI 画布正确显示,而 Direct2d 画布显示字母数字字符,但不显示图标 (Hexcode >= $f000)。取而代之的是经典矩形。有人可以告诉我原因吗?谢谢,恩佐

这是我的代码:

procedure TForm1.Button2Click(Sender: TObject);
var
  D2DCanvas: TDirect2DCanvas;
  Ch: Char;
begin
  Ch := Char($F4BA);
  Canvas.Font.Assign(Self.Font);
  Canvas.Font.Name := 'Font Awesome 5 Free Solid';
  Canvas.Font.Color := clHotLight;

  D2DCanvas := TDirect2DCanvas.Create(Canvas, Rect(0, 0, Width, Height));
  try
    D2DCanvas.Font.Assign(Self.Font);
    D2DCanvas.Font.Name := 'Font Awesome 5 Free Solid';
    D2DCanvas.Font.Color := clHotLight;
    D2DCanvas.BeginDraw;
    try
      D2DCanvas.TextOut(10, 50,  '(Direct2D): ' + Ch);
    finally
      D2DCanvas.EndDraw;
    end;
  finally
    D2DCanvas.Free;
  end;
  Canvas.TextOut(10, 150, '(GDI): ' + Ch);
end;

有了这个结果

标签: delphigdidirect2d

解决方案


推荐阅读