DirectWrite C#错误的Mesaure文字

时间:2018-10-18 16:13:35

标签: c# direct2d slimdx directwrite

我正在使用SlimDx库开发自定义表单控件。 我想测量一些字符串,但是我遇到了一个问题,因为该字符串被测量为垂直字符串。 这是代码,这是什么问题?:

        float FontSize = 8;
        string Message = "AAAAA";
        SlimDX.DirectWrite.Factory fontFactory = new SlimDX.DirectWrite.Factory(SlimDX.DirectWrite.FactoryType.Shared);
        SlimDX.DirectWrite.TextFormat fontFormat = fontFactory.CreateTextFormat("Gabriola", SlimDX.DirectWrite.FontWeight.Regular, SlimDX.DirectWrite.FontStyle.Normal, SlimDX.DirectWrite.FontStretch.Normal,FontSize, "it-it");
        SlimDX.DirectWrite.TextLayout layout = new SlimDX.DirectWrite.TextLayout(fontFactory, Message, fontFormat);
        SizeF retValue = new SizeF(layout.Metrics.Width, layout.Metrics.Height);

结果是高度大于宽度,如果我使用这种布局绘制文本,则会将其绘制为垂直文本。

0 个答案:

没有答案