You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET MVC程序中如何用DrawString实现图片文本黄色高亮?

实现文本黄色高亮效果的解决方案

嘿,我明白你现在的困扰——用DrawString确实没法直接给文本加高亮背景,不过咱们换个思路就能搞定:先画一个黄色的背景矩形,再在上面绘制文本,这样就能完美模拟出高亮效果啦!

具体实现步骤:

  1. 测量文本尺寸:先用Graphics.MeasureString算出目标文本在指定字体下的宽高,这样才能精准确定高亮矩形的大小。
  2. 绘制黄色背景:根据测量出的文本尺寸,画一个比文本稍大一圈的黄色矩形(可以调整边距,让高亮看起来更自然)。
  3. 叠加绘制文本:最后把文本画在黄色矩形上方,注意坐标要和矩形对应上,保证文本刚好落在高亮区域里。

完整代码示例:

// 假设你已拥有Graphics对象g,以及text、fontSize、fontColor、textAlign这些变量
Font textFont = new Font("Arial", fontSize); // 替换为你实际使用的字体
StringFormat textFormat = new StringFormat();
textFormat.Alignment = textAlign; // 对齐方式和文本保持一致

// 第一步:测量文本的实际尺寸
SizeF textSize = g.MeasureString(text, textFont, int.MaxValue, textFormat);

// 第二步:绘制黄色高亮背景(调整padding值可改变高亮边距)
int padding = 3;
RectangleF highlightArea = new RectangleF(
    200 - padding,       // X坐标,减去padding让左侧也有高亮
    320 - padding,       // Y坐标,减去padding让顶部也有高亮
    textSize.Width + padding * 2,  // 宽度加上左右padding
    textSize.Height + padding * 2  // 高度加上上下padding
);
g.FillRectangle(Brushes.Yellow, highlightArea);

// 第三步:在高亮背景上绘制文本
g.DrawString(text, textFont, fontColor, 200, 320, textFormat);

额外小技巧:

  • 如果是多行文本,MeasureString会自动计算整体高度,高亮矩形也能完美适配多行内容。
  • 要是想要圆角高亮效果,可以用GraphicsPath绘制自定义圆角矩形,再填充黄色即可。

内容的提问来源于stack exchange,提问作者luca bogani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:26:24