C# 如何使用C将样式应用于长字符串的字符串部分#

C# 如何使用C将样式应用于长字符串的字符串部分#,c#,C#,我有一个很长的字符串,比如说“使用C#是件很棒的事情” 在上面的子字符串“Its a great”中,我有一个单独的字体和颜色格式,其余的我有不同的字体和颜色格式。如何应用这些样式并使用图形绘制图像 预期o/p: 使用C是一件很棒的事情# 有人能帮我吗 如果您需要更多详细信息,请告诉我。字符串本身不存储字体样式-它们只存储一系列文本字符 如果希望存储样式,则需要更高级别的表示。这些可能性包括使用RTF(富文本格式)或HTML等现有格式,或者制作自己的格式,使用嵌入文本中的特殊字符代码来指示样式的

我有一个很长的字符串,比如说“使用C#是件很棒的事情”

在上面的子字符串“Its a great”中,我有一个单独的字体和颜色格式,其余的我有不同的字体和颜色格式。如何应用这些样式并使用图形绘制图像

预期o/p: 使用C是一件很棒的事情#

有人能帮我吗


如果您需要更多详细信息,请告诉我。

字符串本身不存储字体样式-它们只存储一系列文本字符

如果希望存储样式,则需要更高级别的表示。这些可能性包括使用RTF(富文本格式)或HTML等现有格式,或者制作自己的格式,使用嵌入文本中的特殊字符代码来指示样式的更改

RTF或HTML等格式的优点是有WinForms控件,您可以将文本放入其中显示样式。RTF控件还允许用户编辑文本。您还可以将文本复制并粘贴到其他应用程序中或从其他应用程序中粘贴文本(在开发过程中,从正在运行的应用程序中复制并粘贴到代码中)


如果您希望自己将文本绘制为图形,那么您可能更愿意发明自己的格式以使代码更简单(HTML和RTF是复杂的格式)-或者更好-使用一个固定的HTML子集,这样您就可以保持标准兼容,而不必实现太多自己的HTML解析/呈现代码。

您需要为每个文本样式创建一个单独的
字体和
画笔,将字符串拆分为每个文本的部分,并分别绘制每个文本

重载采用
font
brush
参数,您可以使用其中一个重载来确定下一位文本的放置位置

如果这是一个重复的需求,您可能希望将其逻辑封装在一个类中,以便重用