我使用DirectWrite(通過SharpDX)繪製TextLayout,它的工作方式與預期一樣,除了幾件事情。我打電話此TextLayout構造:DirectWrite.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兼容的,這會導致我的問題?