C# C语言中OwnerDraw ListView的字符对齐

C# C语言中OwnerDraw ListView的字符对齐,c#,.net,controls,alignment,ownerdrawn,C#,.net,Controls,Alignment,Ownerdrawn,我正在尝试实现一个.NET控件,它的功能类似于Firefox Aweasome工具栏。为此,我尝试在ListView中显示的搜索结果中加粗和下划线搜索字符。我已经设置了OwnerDraw,我正在使用Graphics.MeasureCharacterRanges计算字符的大小。我遇到的问题是,从该方法传回的值并不总是完美的。我最终得到了一些额外的像素,或者两个字符彼此太近了。有简单的解决办法吗?用不同的字体设置绘制同一单词的不同部分的另一种方法?我想出了这个办法。我不得不切换到使用TextRend

我正在尝试实现一个.NET控件,它的功能类似于Firefox Aweasome工具栏。为此,我尝试在ListView中显示的搜索结果中加粗和下划线搜索字符。我已经设置了OwnerDraw,我正在使用Graphics.MeasureCharacterRanges计算字符的大小。我遇到的问题是,从该方法传回的值并不总是完美的。我最终得到了一些额外的像素,或者两个字符彼此太近了。有简单的解决办法吗?用不同的字体设置绘制同一单词的不同部分的另一种方法?

我想出了这个办法。我不得不切换到使用TextRenderer.DrawText和TextRenderer.MeasureText。我确保将TextFormatFlags.nop添加到这两个方法中