带有样式模拟的 DrawGlyphRun?
DrawGlyphRun with Style Simulations?
我正在使用 Win2D 开发 UWP 应用程序,我需要非常精细地控制文本的布局,所以我使用 DrawGlyphRun。我看不出有什么方法可以使 DrawGlyphRun 使用模拟斜体 and/or 粗体,有什么方法可以做到这一点吗?
我实际上是在 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;
}
我正在使用 Win2D 开发 UWP 应用程序,我需要非常精细地控制文本的布局,所以我使用 DrawGlyphRun。我看不出有什么方法可以使 DrawGlyphRun 使用模拟斜体 and/or 粗体,有什么方法可以做到这一点吗?
我实际上是在 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;
}