UWP Win2D 绘制指定宽度的文本?是否可以?

标签 uwp drawtext win2d

我喜欢使用 Win2D 在 UWP 应用程序中绑定(bind)的字符串的特定“宽度”来绘制文本“Hello Test Text”。

这就是我需要的原因:

<Viewbox Stretch="Uniform" Width="auto" Height="auto">
                    <TextBlock x:Name="txtSignaturePreview" Text="Sample Text" Foreground="White" />
                </Viewbox>

使用此代码,我可以通过更改 Viewbox 的宽度来调整文本大小。 “示例文本”的字体大小会更改以适应宽度。

我喜欢用 Win2D DrawText 做同样的事情。

CanvasDrawingSession.DrawText 方法(字符串、矩形、颜色、CanvasTextFormat)

DrawText的矩形只是限制并强制文本换行。我发现实现该目标的唯一解决方案是更改字体大小并通过 CanvasTextFormat 传递它。 但是,问题是我找不到解决方案来计算出所需的字体大小和给定的字符串宽度以适应。

有什么帮助吗?

最佳答案

这是根据自己的研究更新的答案。

在与 MSFT 人员在 msdn 论坛讨论后,我确认使用当前可用的方法不可能以简单的方式实现这一点。 Win2D 不支持。

相反,我确实解决了这个问题;我根据宽度比计算字体大小。字体大小是双倍的,非常准确,到目前为止效果很好。

关于UWP Win2D 绘制指定宽度的文本?是否可以?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52212368/

相关文章:

Javascript - 通用 Windows 应用程序 - 捕获关闭事件

java - 如何绘制文本上标-1(unicode)?

delphi - DrawText with DT_CALCRECT - 有没有办法计算矩形的高度而不修改宽度(使用大字符串)?

C# GDI 如何绘制适合矩形的文本?

c# - Win2D中如何计算一段文字的大小

c# - Win2D 梯形校正

c# - UWP 应用程序 C# 中 Button_click 之外的按钮文本更改

c# - UWP 应用未通过认证流程

uwp - 在 UWP 中以 LaTeX 形式的字符串渲染数学方程

c# - Win2D 获取语义标签值