问题标签 [drawstring]

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 投票
2 回答
3370 浏览

java - 我的拉绳不起作用

我在java中有点新,现在已经编程了大约一年,我目前正在做一个项目,让用户选择地图(例如世界地图)并通过单击地图将城市添加到该地图。

当用户点击地图时,他/她输入一个名称,然后在这些坐标上绘制城市,这很好。我的问题是我还希望将城市名称绘制在城市上方,但由于某种原因我无法让它工作。这应该是一项简单的任务,但现在已经尝试了几个小时,并且开始变得非常烦人,所以我希望其他人可以帮助我完成这个简单的查询。

编码:

提前致谢/吉米

0 投票
1 回答
5361 浏览

java - 使用 DecimalFormat(强制点)和 drawString()(y 似乎是错误的)

两个问题合二为一,但我有一个非常简短的测试用例来证明我的问题:

当我使用它时,我得到:

这张图片产生了:

数字.png

我的问题:

  1. 如何在不切换语言环境的情况下强制 DecimalFormat 使用点而不是逗号?
  2. w 似乎是正确的,但是 0 作为高度有什么问题 - 为什么数字会打印在屏幕外?

谢谢!亚历克斯

更新:

我最终使用了语言环境。str.replace(".", ",") 注释也很酷。

0 投票
1 回答
13492 浏览

c# - C# Graphics.DrawString RectangleF Auto-Height:如何找到那个高度?

我正在使用 Graphics DrawString 方法在图像上写入文本,将我的文本与 RectangleF 绑定。这是我的代码:

这适用于某些情况(即header2只有 1 行长),但我的measurement变量只测量字体的高度,而不是整个DrawString矩形。我不想设置静态header2Rect高度,因为高度会根据该文本而变化。

yindex 不起作用,因为header2Rect.Height = 0. 有没有办法查看我的行header2数?

我只需要做MeasureString宽度并将其除以我的边界矩形宽度,然后乘以MeasureString高度吗?我假设有更好的方法。

谢谢

[编辑] 看起来高度实际上是 0,但文本只是溢出到外面,但宽度仍然限制了文本换行。我只是做了一些数学计算来找到高度,但我希望有更好的方法。

0 投票
0 回答
1010 浏览

graphics - TextRenderer.DrawText 使用 GDI 渲染 OTF 字体?

我试图在位图图像上绘制文本,我做了一些研究,发现 .NET/GDI+ 不支持 OTF 字体。我在某处读到了可以使用TextRenderer.DrawTextGDI 渲染 OTF 字体的文章,但我似乎无法弄清楚如何使用,质量也无法与之相比Graphics.DrawString

  1. 首先,是否可以在 VS 中使用 OTF 字体或者我读错了什么?

  2. 第二,如果答案是TextRenderer.DrawText,我该如何使用OTF字体?看起来我必须使用System.Drawing.Font该类,但我认为那些不支持字体,这就是问题所在,对吗?

  3. 如何让字体像使用 GDI+ ( Graphics.DrawString)的 TTF 字体一样清晰呈现

  4. 使用Graphics.DrawString我能够使用RectangleF(指定宽度,0 高度)作为我的文本的边界,并且文本正确包装。使用TextRenderer.DrawText,使用的能力RectangleF消失了,只允许Rectangle似乎不允许 0 高度,同时仍然允许显示文本(即文本必须在矩形内,并且文本换行不起作用)。我做错了吗?

任何帮助将不胜感激。如果无法做到这一点,有没有办法转换OTF字体,或者在TTF版本中在线找到Gotham字体系列?我真的需要这些字体!

0 投票
0 回答
204 浏览

.net - .Net 中带有 PathEllipsis 的紧凑型长字符串

我有以下字符串,我正在使用 DrawString 在我的一个树视图控件中绘制它。

树视图正在绘制上面的字符串,如下所示:

在此处输入图像描述

现在,我想将上图中显示的相同字符串压缩为另一个字符串。我试过http://www.codeproject.com/KB/vb/NewPathCompactPath.aspx

但是,它没有为我提供上面的图像结果。

请告诉我,如何使用TextRenderer.MeasureText相同的字符串获得相同的结果。

谢谢

0 投票
1 回答
605 浏览

.net - .NET DrawString() 更改图形比例时不同的文本布局

我正在使用简单的代码在指定的矩形内绘制文本。一切正常,除了有时文本布局因图形比例而异(通过 Graphics.ScaleTransform 方法设置)。

很难用语言来描述这个问题,所以看一下示例图像

  1. ScaleTransform 设置为 0.3 左右 - 文本适合指定矩形内的一行。
  2. ScaleTransform 设置为 0.6 左右 - 文本在最后一个单词之前换行。

在这两种情况下,它是相同的字体、文本、布局矩形、StringFormatting 等等。唯一改变的是规模。请注意,我不使用“字体缩放”!在这两种情况下,它甚至是同一个字体对象。未设置 StringFormatFlags。

我该如何解决?我不在乎文本是否会被换行——我只需要一致性。无论规模大小,始终包裹或不包裹。怎么做?

0 投票
1 回答
1105 浏览

java - 工具提示文本擦除Java中的面板绘图

我有一个JPanel使用方法在其上执行一些绘图paintComponent,然后当用户单击在其JPanel上绘制(或任何绘图)的字符串时,当用户将鼠标移到JPanel它上面时,它会在JPanel.

1)问题是,当工具提示出现在绘制的字符串上时,它会擦除​​它,但是这个工具提示文本对我在paintComponent方法中执行的绘图部分没有擦除效果。我无法理解为什么会这样。

2)而且当我在点击时绘制字符串然后最小化并恢复我的应用程序时,我绘制的字符串消失了。

希望你们都明白我的意思。

这是代码:

提前谢谢....

0 投票
4 回答
28244 浏览

c# - 在 .NET 中绘制文本

我正在做一些关于在.Net 中绘制文本的测试,我得到了以下结果。

绘图文本示例

所有案例都使用默认的 Windows Vista/7 字体:Segoe UI, 9

如您所见,第二个字符串与其他字符串之间存在差异(它的质量较低,并且抗锯齿不同)。我尝试在对象中配置抗锯齿和平滑模式Graphics,但没有任何结果。

是否可以绘制文本Graphics.DrawString并获得与其他方法相同的质量?

提前致谢。


编辑:我已经用 Reflector 查看了代码。我意识到Graphics.DrawString使用gdiplus.dll调用方法 GdipDrawString() 并TextRenderer.DrawText使用user32.dll调用DrawTextExWDrawTextExA.

对此有何评论?

0 投票
4 回答
2260 浏览

xna - XNA SpriteFont 有多种颜色?

有没有办法绘制具有多个彩色水平区域的文本?例如,我想绘制文本“Hello”,下半部分为红色,上半部分为绿色。要使用的文本必须是动态的。使用普通纹理,我将只使用 Draw 方法并传递一个子矩形来绘制不同颜色的纹理部分,但用于文本?

0 投票
1 回答
261 浏览

vb.net - 了解字体的所有细节,获取字符的尺寸

我需要根据指定的字体创建字符位图。当他们指定字体时,他们正在指定:

  • 字体(例如 Microsoft Sans Serif)
  • 字体样式(例如粗体)
  • 大小(例如 14)
  • 效果(例如剔除)
  • 脚本(例如西方)

知道了这一点,如果我知道字符和上面的所有信息,是否可以准确地确定字符的大小?我必须将它们绘制到与角色大小相同且不更大的位图上。

谢谢!我在 VB.net 中做这一切,所以所有 .net 示例都是可以接受的。