Verwenden benutzerdefinierter Schriftarten auf einem Label in Winforms

10

Ich habe eine Beschriftung auf meinem WinForm und möchte eine benutzerdefinierte Schriftart mit dem Namen XCalibur verwenden, um es schimmernder erscheinen zu lassen.

Wenn ich eine benutzerdefinierte Schriftart auf einem Etikett verwende und dann die Lösung erstelle und dann die Dateien in \ bin \ Release ziehe, sieht der Endbenutzer die Etiketten mit meiner benutzerdefinierten App, die ich verwendet habe, unabhängig davon, ob diese Schriftart installiert ist oder nicht ?

Wenn dies nicht der Fall ist, wie können Sie benutzerdefinierte Schriftarten für Labels.Text verwenden?

    
Sergio Tapia 19.08.2009, 00:21
quelle

4 Antworten

22

Betten Sie die Schriftart als Ressource ein (oder fügen Sie sie einfach in das Verzeichnis bin ein), und verwenden Sie dann die Datei PrivateFontCollection um die Schriftart zu laden (Siehe die Funktionen AddFontFile und AddMemoryFont ). Sie verwenden dann die Schriftart normal wie es auf dem Computer installiert wurde.

  

Die PrivateFontCollection-Klasse ermöglicht   Anwendungen zur Installation eines privaten   Version einer vorhandenen Schriftart ohne   die Anforderung, das System zu ersetzen   Version der Schriftart. Zum Beispiel, GDI +   kann eine private Version des   Arial-Schriftart zusätzlich zu Arial   Schriftart, die das System verwendet.   PrivateFontCollection kann ebenfalls verwendet werden   um Schriften zu installieren, die nicht existieren   das Betriebssystem.

Quelle

    
Adam Hughes 25.08.2009, 18:15
quelle
22

Nachdem ich vielleicht 30 - 50 Beiträge durchgesehen habe, habe ich endlich eine Lösung gefunden, die wirklich funktioniert! Bitte folgen Sie den Schritten nacheinander:

1.) Fügen Sie Ihre Schriftartdatei (in meinem Fall ttf-Datei) in Ihre Anwendungsressourcen ein. Doppelklicken Sie dazu auf die Datei " Resources.resx ".

2.) Markieren Sie die Option "Ressource hinzufügen" und klicken Sie auf den Abwärtspfeil. Wählen Sie die Option "Vorhandene Datei hinzufügen". Suchen Sie nun Ihre Schriftartdatei, wählen Sie sie aus und klicken Sie auf OK. Speichern Sie die Datei "Resources.resx".

3.) Erstellen Sie eine Funktion (z. B. InitCustomLabelFont ()) und fügen Sie den folgenden Code hinzu.

%Vor%

Ihre benutzerdefinierte Schriftart wurde der PrivateFontCollection hinzugefügt.

4.) Ordnen Sie als nächstes die Schriftart Ihrem Label zu und fügen Sie einen Standardtext hinzu.

%Vor%

5.) Gehen Sie zu Ihrem Formularlayout und wählen Sie Ihr Etikett. Klicken Sie mit der rechten Maustaste darauf und wählen Sie " Eigenschaften ". Suchen Sie nach der Eigenschaft " UseCompatibleTextRendering " und legen Sie sie auf " True " fest.

6.) Bei Bedarf können Sie die Schrift freigeben, nachdem Sie sicher sind, dass sie nie wieder verwendet werden kann. Rufen Sie die PrivateFontCollection.Dispose () -Methode auf, die Sie dann auch nutzen können Rufen Sie Marshal.FreeCoTaskMem (Daten) sicher. Es ist ziemlich üblich, die Schriftart nicht zu belasten und sie für das Leben der App geladen zu lassen.

7.) Führen Sie Ihre Anwendung aus. Sie werden nun sehen, dass Sie eine benutzerdefinierte Schriftart für das angegebene Etikett festgelegt haben.

Prost!

    
Siddhant 07.05.2014 14:04
quelle
5

Ich denke, die Lösung besteht darin, die gewünschte Schriftart in Ihre Anwendung einzubetten.

Versuchen Sie diesen Link:

Ссылка

    
P.K 23.08.2009 18:17
quelle
2

Fügen Sie die Schriftart hinzu, die Sie verwenden möchten.

'

%Vor%

Ich habe auch eine Methode gemacht.

%Vor%

    
Reza Taibur 04.10.2016 21:55
quelle

Tags und Links