【问题标题】:Direct2D widthIncludingTrailingWhitespace == 0 while width > 0?Direct2D widthIncludingTrailingWhitespace == 0 而宽度 > 0?
【发布时间】:2021-09-03 03:37:15
【问题描述】:

Microsoft 的 Direct2D 框架存在问题。

width > widthIncludingTrailingWhitespace 怎么可能?不应该吗

width == widthIncludingTrailingWhitespace

没有尾随空格

的情况下

width < widthIncludingTrailingWhitespace.

当底层字符串包含尾随空格

在我的例子中,底层字符串是“Info”。它有一个尾随空格,但widthIncludingTrailingWhitespace 仍然为零。见截图:

MSDN documentation 状态:

width

类型:浮点数

一个值,表示格式化文本的宽度,同时忽略 每行末尾的尾随空格。

widthIncludingTrailingWhitespace

类型:浮点数

格式化文本的宽度,考虑到每行末尾的尾随空格。

【问题讨论】:

  • 我遇到了同样的问题,所以我只是添加了一个测试 if widthIncludingTrailingWhitespace

标签: msdn directwrite


【解决方案1】:

这似乎是一个 MSDN 错误。

这个问题只发生在

IDWriteTextLayout->SetTextAlignment(DWRITE_TEXT_ALIGNMENT_TRAILING)

如果是

IDWriteTextLayout->SetTextAlignment(DWRITE_TEXT_ALIGNMENT_LEADING)

widthIncludingTrailingWhitespace 计算正确。

【讨论】:

    猜你喜欢
    • 2020-03-11
    • 1970-01-01
    • 2014-01-24
    • 2018-07-15
    • 2019-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-15
    相关资源
    最近更新 更多