So rendern Sie eine Schriftart aus dem privaten Fontcollection-Speicher in bearbeitbare Steuerelemente

Dies ist eine Fortsetzung vonLaden einer Schriftart aus Ressourcen in PrivateFontCollection führt zu Beschädigung

Die Antwort geliefertHie ist ausreichend für Steuerelemente mit demUseCompatibleTextRendering -Methode verfügbar, für andere häufig verwendete Steuerelemente scheint es jedoch nicht verfügbar zu sein, auf welchen Text der Hauptfokus liegt, z. B .:

ListenansichTextfel RichTextBoxKombinationsfel... und viele mehr..

Ich habe versucht, die Informationen vonHie was im Grunde mit dem @ liebäugeApplication.SetCompatibleTextRenderingDefault Zeile inProgram.cs (niemand hat geklärt, wo diese Einstellung standardmäßig ist, also dokumentiere ich sie hier). Ich habe auch mit Telerik-, DevExpress- und Infragistics-Textsteuerelementen herumgespielt, alle außer Telerik verfügen nicht über die Fähigkeit zur kompatiblen Textwiedergabe. Das Teleriks-Steuerelement verfügt über diese Methode, hat jedoch keine Auswirkung, einschließlich des Versagens, die Vorfarbe für das, was gespeichert ist, festzulegen in der Eigenschaft (ein anderes Tier, nur die Panne des Telerik radTextBox-Steuerelements beachten).

Es scheint, egal wie ich es schneide, jedes Steuerelement, das tatsächlich für Text nützlich ist, wird den Text nicht richtig rendern, indem es die quadratischen Zeichen anzeigt, wie im oben angegebenen ursprünglichen Beitrag dargestellt.

In Summe

Die Schriftart wird von einer Ressource in den Speicher von PrivateFontCollection geladen.Die Anwendung stürzt nicht ab

Die gleiche Schriftart wird erfolgreich für Beschriftungen verwendet (UseCompatibleTextRendering funktioniert darauf) - im selben Formular, im selben Projekt.

Die von diesem (neuen?) Problem betroffenen Steuerelemente sind grundsätzlich alle Steuerelemente, die möglicherweise "eingegeben" werden können, z. B. TextEdit, ListView, RichText, Combo usw.

Wenn ich vom Umschalten, Spielen oder Spielen spreche, bedeutet dies, dass ich alle möglichen Kombinationen der Steuerelemente und / oder des Codes ausprobiert habe, die mir zur Verfügung gestellt wurden. Zum Beispiel:Application.SetCompatibleTextRenderingDefault hat nur 3 mögliche Kombinationen für sich.(true) (false) oder komplett weggelassen. Nachdem ich diese 3 Kombinationen abgeschlossen habe, fuhr ich fort (grundlegende Fehlerbehebung hier, aber ich finde es notwendig zu erklären, um alle Grundlagen abzudecken), um ein Telerik-Steuerelement hinzuzufügen, und probiere dann alle Kombinationen im Telerik-Steuerelement in Verbindung mit allen Kombinationen des @ auApplication.SetCompatibleTextRenderingDefault Befehl. Die Anzahl der Tests ist exponentiell. Dabei handelt es sich um die Anzahl der möglichen Kombinationen von Rendering-Möglichkeiten multipliziert mit der Anzahl der versuchten Steuerelemente multipliziert mit der Anzahl der Rendering-Möglichkeiten, über die jedes dieser Steuerelemente verfüg

Antworten auf die Frage(2)

Ihre Antwort auf die Frage