我正在使用 DirectWrite (通过SharpDX)绘制一个 TextLayout 并且它按预期工作,除了几件事。我正在调用这个 TextLayout 构造函数:
http://sharpdx.org/documentation/api/m-sharpdx-directwrite-textlayout--ctor-2
我的代码非常简单:
// define 45 deg rotation matrix
var transformMatrix = new SharpDX.DirectWrite.Matrix();
transformMatrix.M11 = 0.7f;
transformMatrix.M12 = 0.7f;
transformMatrix.M21 = -0.7f;
transformMatrix.M22 = 0.7f;
transformMatrix.Dx = 0;
transformMatrix.Dy = 0;
var pixelsPerDip = 5;
var TextLayout = new SharpDX.DirectWrite.TextLayout(DWFactory, "Hello world!",
TextFormat, 400, 200, pixelsPerDip, transformMatrix, true);
我可以将变换矩阵更改为任何值,但它对我的输出没有影响。我还发现pixelsPerDip
除了在我指定零时不绘制文本之外没有任何效果。我深入研究了 SharpDX 源,这些输入似乎得到了正确处理。我究竟做错了什么?
我正在使用的 TextLayout 构造函数调用CreateGdiCompatibleTextLayout()
。我正在做/使用的其他事情是否可能与 GDI 不兼容,这会导致我的问题?