问题标签 [textrenderer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
11995 浏览

c# - 位图中的 TextRenderer.DrawText 与 OnPaintBackground

如果我使用我的文本中提供TextRenderer.DrawText()Graphics对象OnPaintBackground看起来很完美。如果我创建自己的Bitmap并使用Graphics从我Bitmap的文本中获得的对象看起来很糟糕。看起来它是使用黑色而不是位图的背景颜色对文本进行抗锯齿处理。如果我使用 ,我可以避免这个问题Graphics.DrawString(),但是这种方法有可怕的字距调整问题。我该怎么办?如何TextRenderer.DrawText()使用位图的内容正确获得抗锯齿?

看起来很可怕:

看起来不错,但我想将其渲染到位图上,而不是渲染到控件的表面上:

有什么不同?

0 投票
4 回答
1814 浏览

c# - LinkLabel 需要比 TextRenderer.MeasureText 更多的空间说

如果我给 TextRenderer.MeasureText 一些要测量的文本和要使用的宽度,它将返回显示该文本所需的高度。

如果我将该文本、宽度和高度提供给 LinkLabel,它将以提供的宽度和高度显示文本,而不会被剪掉。

但是,如果我将一个链接放入 LinkLabel.Links 集合中,LinkLabel 将绘制文本,其中字符之间的间距似乎更大一些,有时这会导致文本的结尾被剪裁。有没有办法防止这种情况发生?我尝试在有链接时添加填充,但没有可靠的方法来确切知道需要多少空间。还有其他方法可以做到这一点吗?

0 投票
4 回答
17728 浏览

c# - TextRenderer.MeasureText 结果的准确性

调用 TextRenderer.MeasureText 如下:

并将结果与​​控件的大小进行比较以检查文本是否适合。结果有时是不正确的。观察到以下两个问题:

  • 通常,当 Label 设置为 AutoSize 时,TextRenderer 会报告比 Control 的自动调整宽度宽 1 个像素的宽度。
  • TextRenderer 报告的宽度小于控件的宽度但文本仍被截断的错误否定。这发生在“Estación de trabajo”——不确定重音是否会以某种方式影响宽度计算?

有什么方法可以提高MeasureText方法的准确性吗?我应该调用接受设备上下文和/或格式标志的覆盖之一吗?

0 投票
2 回答
2225 浏览

.net - 在不更改基础值的情况下格式化 DataGridView 单元格?

我有一个未绑定的 DataGridView(在 VS 2008 中),其中一列包含一个文件路径。我想在 ColumnWidthChanged 事件上使用 TextRenderer 类来格式化字符串,而无需实际修改基础值。问题是表格的内容在表单关闭时被保存,我不想保存格式化的值。我想我太深了,看不到明显的解决方案,所以我依靠你们来指出:-)。

这个想法是显示这个:

C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe

...这样(取决于列的宽度):

C:\Program Files\Microso…\gacutil.exe


看来我说得太早了。我从 TextRenderer.MeasureText() 得到了一些非常奇怪的结果。如果我将路径值硬编码为“C:\Documents and Settings\jluce\My Documents\Downloads”,它最终会变成 C:\Documents and Settings\jluce\M...\Downloads\0wnloads”。如果我不这样做t 对其进行硬编码(如下所示),每次我调整列大小时它都会进一步损坏。

这是几次调整大小后的样子: 截图

这是我目前正在做的事情。


这只会越来越奇怪!

我设法通过遍历每个字符并删除坏字符来解决损坏字符串的问题。然而,现在我遇到了一个更疯狂的问题。我在事件处理程序中分配的局部变量在调用之间保留其值。

以下是相关代码:

第一次调整列大小(请参阅上面评论中的#):

  1. 在此行之后路径包含“”。
  2. 在此行之后,路径包含字符串,就像上面显示的那样。
  3. 路径包含应截断的文件路径(即“C:\Documents and Setti...\Downloads”)

第二次调整大小:

  1. 在此行之后路径包含“”,因为它应该。
  2. 在此行之后,路径包含“C:\Documents and Set...\Downloads\0 Documents\Downloads”,这是在我去除无效字符之前的上一次迭代中的无效值(此处显示为 '\0')! !
  3. 现在的路径是 FUBAR,因为我从一个搞砸的字符串开始,它只会变得更糟。

当我明确地为它分配一个值时,为什么会从上一个函数调用中为 Path 分配无效值(在正确分配一个空字符串之后!)?!!!!!!

0 投票
2 回答
1348 浏览

c# - 将 Windows 窗体文本框文本宽度与 GDI 宽度相关联

我正在使用 GDI 从文本框中绘制文本;但是,我正在尝试创建我的文本框,以便它反映我在 GDI 中绘制的相同数量的空间。因此,对于 GDI 中的某些 X 宽度,我希望文本框中的字符串长度不能超过这个宽度。

要在 GDI 中绘制字符串,我使用以下内容:

至于文本框,我在输入字符时测量字符串:

我的文本框本身也使用 Lucidia Console 8pt 作为字体。

所以,那么麻烦就变成了一个 X 宽度的文本框,它的宽度与我在 GDI 中绘制的宽度相同。

我遇到过关于字形、em-size/pixel ratios 和其他主题的各种讨论,但几乎没有解决。

有任何想法吗?

0 投票
3 回答
1183 浏览

iphone - 加载内容时更改 UIWebView 的颜色

我的应用程序中有一个 UIWebView,它显示了一些 html 格式的文本(从我的包中的 .plist 文件加载)。UIWebView 需要大约 1 秒来在屏幕上呈现文本,在此期间整个 UIWebView 是白色的。我尝试将视图的背景颜色设置为clearor black,但没有做任何事情。我还尝试使用委托方法仅在 UIWebView 显示时才显示它,didLoadContent但该方法从未被调用,因为我们不涉及任何请求,我只是在那里呈现一个 html 字符串。

有没有办法在视图被渲染之前什么都不显示?

如果没有,是否有另一种方法可以在 iPhone 上呈现 html 文本?

谢谢你。

0 投票
3 回答
1128 浏览

c# - TextRenderer.DrawText 在 XP 和 Vista 上以不同方式呈现 Arial

我有执行文本渲染的 ac# 应用程序,与简单的所见即所得文本编辑器相当。

我正在使用 TextRenderer.DrawText 将文本呈现到屏幕上,并使用 GetTextExtentPoint32 来测量文本,以便我可以在同一行上放置不同的字体样式/大小。

在 Vista 中,这一切都很好。然而,在 XP 中,Arial 的呈现方式有所不同,某些字符(如 'o' 和 'b')比 Vista 中占用更多的宽度。GetTextExtentPoint32 似乎像在 Vista 中一样测量字符串,但宽度更小。最终结果是,由于前面的文本被测量为小于屏幕上的实际大小,因此不时会出现一行文本与其前面的文本重叠。

此外,我的文本渲染代码完全模仿了 ie 的文本渲染(仅用于简单格式和英语语言),并且 ie 文本渲染似乎在 vista 和 xp 之间是一致的——这就是我注意到不同字符大小变化的方式。

有人对发生的事情有任何想法吗?

简而言之,TextRenderer.DrawText 和 GetTextExtentPoint32 在 xp 中与 Arial 不匹配。DrawText 似乎比在 Vista 中绘制的某些字符更大和/或更小,但 GetTextExtentPoint32 似乎正在像在 Vista 中一样测量文本(这似乎与 xp 和 vista 上的 ie 中的文本呈现相匹配)。希望这是有道理的。

注意:不幸的是 TextRenderer.MeasureString 不够快或不够准确,无法满足我的要求。我试过用它,不得不把它撕掉。

0 投票
2 回答
6394 浏览

wpf - 文本渲染仍然模糊:WPF 应用程序的最佳字体?

我知道这是一个非常主观的问题,但由于 WPF 中的文本渲染仍然是一个问题,我必须充分利用它。

在 WPF 应用程序中,文本往往会变得模糊,这已经不是什么秘密了。还有无数关于这个主题以及如何解决这个问题的网站。但我想知道......文本模糊似乎比其他字体更能影响某些字体。所以我仍在寻找最好的字体来解决这个问题。

到目前为止,我仍在使用 Arial,它看起来并不好。但我确信其他一些字体更适合手头的任务。

0 投票
1 回答
1630 浏览

winforms - 为什么这里需要 UseCompatibleTextRendering?

我想我错过了一些基本的东西。如果可以的话,请告诉我它是什么。

我使用 VS2008 开发了一个小的 C++ WinForms 应用程序。所以它是使用 .NET 3.5 SP1 构建的。我的开发箱是 Win7,如果这很重要的话。

在这个版本的 VStudio 中,WinForms 控件中 UseCompatibleTextRendering 属性的默认值为 false。这对我来说应该不重要,我不认为。我没有任何自定义绘制的文本或控件。

该应用程序在我的 Win7 机器上运行良好。

如果我将它打包(沿 .NET 3.5 拖动)并将其安装在我们的 WinXP 桌面之一上,按钮和标签看起来不太好;文本在其中被截断。

如果我将 UseCompatibleTextRendering 设置为 true,然后在 XP 框上运行它,则文本适合按钮和标签。

我的问题是:为什么?安装将 .Net 3.5 放在 XP 盒子上,所以应用程序应该能够找到并使用正确版本的 WinForms,对吧?

我应该注意到,在我将我的应用程序 + .NET 3.5 放在这些盒子上之前,它们根本没有 .NET。他们没有自动获得 Microsoft 更新;我们的 IT 人员负责修补和升级。

[ 这种事情以前在我创建的应用程序中发生过。它们在工程机器上看起来/工作得很好,因为我们维护这些,而且它们大部分都有最新的东西。当它们在企业机器上运行时,它们通常不运行并且需要安装 VCredist。]

回到手头的问题:UseCompatibleTextRendering 设置为 false 时文本看起来更好,所以如果可以的话,我宁愿保持这种状态。我想了解那些使文本不合适的 XP 框可能缺少的内容。

谢谢

小号

0 投票
3 回答
2022 浏览

scala - 使用 Textrenderer 旋转文本

嘿,我想使用 JOGL 在 2D 场景中显示文本。但我不知道如何使用 com.sun.opengl.util.j2d.TextRenderer 旋转文本。它没有任何关于旋转的方法。所以我期待模型视图矩阵对旋转产生影响。

你知道有什么帮助吗?