Alinhamento personagem com um ListView OwnerDraw em C #
-
05-09-2019 - |
Pergunta
Eu estou tentando implementar um controle .NET que funciona como o Firefox Awesome Bar. Para esse fim, eu estou tentando negrito e sublinhado procurou personagens dentro de resultados de pesquisa exibidos em um ListView. Eu configurei OwnerDraw e eu estou usando Graphics.MeasureCharacterRanges para descobrir o quão grande são os personagens. O problema que estou tendo é que os valores passados ??para trás a partir desse método nem sempre são perfeitos. Eu acabar com alguns pixels extra aqui e ali ou dois personagens que são muito próximos uns dos outros. Existe um reparo fácil? Outra maneira de chamar a diferentes partes de uma mesma palavra com diferentes configurações de fonte?
Solução
Eu descobri isso. Eu tive que passar a usar TextRenderer.DrawText e TextRenderer.MeasureText. Fiz questão de passar TextFormatFlags.NoPadding para ambos os métodos.