Como renderizar uma fonte da memória privatecollection para controles editáveis

Esta é uma continuação deCarregar uma fonte de recursos no PrivateFontCollection resulta em corrupção

A resposta fornecidaaqui é suficiente para controles que têm oUseCompatibleTextRendering método disponível, no entanto, parece não estar disponível para outros controles comuns, cujo texto é o foco principal, como:

Exibição de listaCaixa de textoRichTextBoxCaixa combo... e muitos mais...

Eu tentei as informações deaqui que é basicamente brincando com oApplication.SetCompatibleTextRenderingDefault linha emProgram.cs (ninguém esclareceu onde essa configuração é por padrão, por isso estou documentando aqui). Eu também brinquei com os controles de texto Telerik, DevExpress e Infragistics, todos, exceto a Telerik, não têm a capacidade de renderização de texto compatível incorporada. O controle Teleriks tem o método, no entanto, tem efeito zero, incluindo falha na definição da cor do que é armazenada. na propriedade (um animal diferente, apenas observando a falha do controle raderTextBox da Telerik).

Parece que não importa como eu o corto, qualquer controle que seja realmente útil com texto não renderizará o texto exibindo corretamente os caracteres quadrados, como mostrado na postagem original mencionada acima.

Em suma :

A fonte está carregando de um recurso na memória para PrivateFontCollectionO aplicativo não falha

A mesma fonte está sendo usada nos rótulos com êxito (UseCompatibleTextRendering funciona neles) - no mesmo formulário, no mesmo projeto.

Os controles afetados por esse (novo?) Problema são estritamente qualquer controle que alguém possa potencialmente "digitar", como TextEdit, ListView, RichText, Combo, etc.

Ao falar de alternar, brincar ou brincar - o que isso significa é que tentei todas as combinações possíveis dos referidos controles e / ou código que foram fornecidos. Por exemplo:Application.SetCompatibleTextRenderingDefault possui apenas 3 combinações possíveis em si.(true) (false) ou completamente omitido. Depois de concluir essas 3 combinações, continuei (solução de problemas básica aqui, mas acho necessário explicar para cobrir todas as bases) para adicionar um controle Telerik e tente todas as combinações no controle Telerik, em conjunto com todas as combinações doApplication.SetCompatibleTextRenderingDefault comando. O número de testes é exponencial, sendo o número de combinações possíveis de possibilidades de renderização multiplicado pelo número de controles tentados multiplicado pelo número de possibilidades de controle de renderização que cada um desses controles possui, e assim por diante.

questionAnswers(1)

yourAnswerToTheQuestion