用C#的行内图像替换标签中的文本

问题描述 投票:0回答:1

我的程序有几个Label控件,经常会更新为具有不同的文本。我要在文本中引用一些图标。我发现不仅要在标签中显示“ (E)”,还应该有一种方法将其替换为我具有的对应图像:e。我认为我需要重写Label.Paint事件,但是我不太确定如何正确执行此操作。每次出现的“ (E)”都需要用图像内嵌替换。

示例

在顶部寻找(E)图标。在顶部寻找e图标。

c# image label controls paint
1个回答
0
投票

这不是琐碎的练习。

  1. 您必须在派生的标签类上提供一个属性,以将图像附加到文本上。
  2. 在文本中嵌入了某种代币以表示图像。
  3. 在OnPaint中,您必须分析令牌的文本
  4. 对标记之间的每个文本位执行graphics.MeasureString()。然后使用graphics.DrawString()向右移动文字宽度来渲染它,使用许多graphics.DrawImage()替代之一基于标记渲染图像-向右移动图像宽度并重复。] >
© www.soinside.com 2019 - 2024. All rights reserved.