1

我正在使用 Win2D 开发 UWP 应用程序,我需要非常精细地控制文本的布局,因此我使用的是 DrawGlyphRun。我看不出有任何方法可以让 DrawGlyphRun 使用模拟斜体和/或粗体,有没有办法做到这一点?

4

1 回答 1

0

实际上,我在 Win2D 团队的帮助下完成了这项工作,不得不进入 C++ 并执行以下操作:

CanvasFontFace^ FontHelper::GetFontFaceWithSimulations(CanvasFontFace^ baseFont,
    CanvasFontSimulations simulations)
{
    ComPtr<IDWriteFontFaceReference> nativeSrc = GetWrappedResource<IDWriteFontFaceReference>(baseFont);

    DWRITE_FONT_SIMULATIONS flags = (DWRITE_FONT_SIMULATIONS)simulations;

    ComPtr<IDWriteFontFace3> withSimulations;
    nativeSrc->CreateFontFaceWithSimulations(flags, &withSimulations);

    ComPtr<IDWriteFontFaceReference> nativeResult;
    withSimulations->GetFontFaceReference(&nativeResult);

    CanvasFontFace^ win2dResult = GetOrCreate<CanvasFontFace>(nativeResult.Get());
    return win2dResult;
}
于 2017-03-06T14:10:28.797 回答