Xamarin:Benutzerdefinierte Schriftart in App: Unterschied zwischen den Versionen

Aus maxTechCorner
Deko (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
imported>TechCorner-Redaktion
Softwareentwicklung: Überarbeitung
 
Zeile 1: Zeile 1:
==='''Symptom'''===
{{Hinweis|'''Xamarin''' hat am 1. Mai 2024 das Support-Ende erreicht; Nachfolger ist '''.NET MAUI'''. Dieser Artikel bleibt als Referenz erhalten – für neue Projekte gilt .NET MAUI.}}
Sie möchten in Ihrer Xamarin-App eigene Schriftarten (Custom Fonts) benutzen. Sie kopieren Ihre Schriftart-Dateien in den App-Ordner, diese werden jedoch nicht angewendet. App benutzt weiterhin die Standart-Schriftarten.


==='''Ursache und Lösung'''===
== Symptom ==
Damit eine benutzerdefinierte Schrift in der App verwendet wird, sollte diese richtig konfiguriert werden. Öffnen Sie bitte hierzu Ihre Projektmappe in VisualStudio und dann gehen Sie wie folgt vor. <br /><br />
Eigene Schriftarten (Custom Fonts) in einer Xamarin-App werden nicht angewendet – die App nutzt weiter die Standardschrift.


'''Xamarin Android:''' <br />
== Xamarin.Android ==
# Schriftdatei (z. B. <code>MeineSchrift.ttf</code>) im Ordner <code>Assets</code> ablegen.
# In den Eigenschaften als BuildAction '''AndroidAsset''' einstellen.
# Im Code verwenden:
<syntaxhighlight lang="csharp">
public static Typeface MeineAppSchrift =
    Typeface.CreateFromAsset(Application.Context.Assets, "MeineSchrift.ttf");


1. Legen Sie Ihre Schriftart-Datei (z.B. MeineSchrift.ttf) in Ordner <Assets> Ihres Projektordners ab.<br />
TextView meinTextView = FindViewById<TextView>(Resource.Id.MeinTextView);
2. Klicken Sie auf diese Datei mit der rechten Maustaste und gehen Sie zu <Eigenschaften>. Stellen Sie sicher, dass es „AndroidAsset“ als BuildAction für diese Datei eingestellt ist.<br />
meinTextView.Typeface = MeineAppSchrift;
3. Jetzt können Sie Ihre Schriftart in der Android-App im C#-Code benutzen:<br />
</syntaxhighlight>
<pre> public static Typeface MeineAppSchrift =
== Xamarin.iOS ==
          Typeface.CreateFromAsset(Application.Context.Assets, "MeineSchrift.ttf");
# Schriftdatei im Ordner <code>Resources</code> ablegen, BuildAction '''BundleResource'''.
   
# In der <code>Info.plist</code> (per XML-Editor) registrieren:
TextView MeinTextView  =  FindViewById<TextView>(Resource.Id. MeinTextView);
<syntaxhighlight lang="xml">
MeinTextView.Typeface  =  MeineAppSchrift;
<key>UIAppFonts</key>
</pre>
<array>
'''Xamarin iOS:'''<br />
    <string>MeineSchrift.ttf</string>
</array>
</syntaxhighlight>
# Im Code den '''Schriftnamen''' (nicht den Dateinamen) verwenden:
<syntaxhighlight lang="csharp">
public static string MeineAppSchrift = "MeineSchrift";


1. Legen Sie Ihre Schriftart-Datei (z.B. MeineSchrift.ttf) in Ordner <Resources> Ihres Projektordners ab.<br />
meinLabel.Font = UIFont.FromName(MeineAppSchrift, 20);
2. Klicken Sie auf diese Datei mit der rechten Maustaste und gehen Sie zu <Eigenschaften>. Stellen Sie sicher, dass es „BundleResource“ als BuildAction für diese Datei eingestellt ist.<br />
</syntaxhighlight>
3. Jetzt sollten Sie noch Ihre Schriftart in der Datei  Info.plist registrieren. Achtung, wenn Sie diese Konfigurationsdatei in VisualStudio mit dem eingebauten Default-Editor (PListEditorFactory) öffnen, dann finden Sie dort keine Möglichkeit, die Schriftarten zu konfigurieren. Das geht nur im XamarinStudio auf dem Mac. Aber keine Sorge, in VisualStudio gibt es auch einen Weg, um die Schriftarten in Info.plist einzutra-gen. Plist-Dateien sind nichts anderes, als XML-Dokumente. Darum klicken Sie einfach in VisualStudio auf Ihre Info.plist-Datei mit der rechten Maustaste, wählen Sie <Öffnen mit...> und dann <XML Editor>. Nun fügen Sie einen Key hinzu:
Den Schriftnamen erfahren Sie, wenn Sie die .ttf-Datei öffnen.
<pre><key>UIAppFonts</key>
<array>
<string>MeineSchrift.ttf</string>
</array>
</pre>
<br />
4. Jetzt können Sie Ihre Schriftart in der iOS-App im C#-Code benutzen:
<pre>public static string MeineAppSchrift = "MeineSchrift";


MeinLabel.Font = UIFont.FromName(MeineAppSchrift, 20); 
== Unterstützung von m.a.x. it ==
</pre>
Bei plattformübergreifender App- und Software­entwicklung unterstützt Sie m.a.x. it mit [https://www.max-it.de/development/individuelle-softwareentwicklung/ individueller Softwareentwicklung].
Achtung, hier sollten Sie den Schriftnamen benutzen, und nicht den Dateiname. Den Schriftnamen können Sie erfahren, wenn Sie Ihre .ttf-Datei ganz normal aus dem Windows-Explorer öffnen.
[[Datei: Öffnen der .ttf-Datei.jpg|left|thumb|500px]]
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br />


==='''Weitere Informationen'''===
{{Uebermax}}
Mehr Informationen zu unseren Softwarelösungen und Services finden Sie auf<br />
[[Kategorie:Softwareentwicklung]]
[https://www.max-it.de/techcorner/Xamarin:Benutzerdefinierte_Schriftart www.max-it.de/Softwarelösungen]


==='''Links und Quellen'''===
[http://developer.xamarin.com/recipes/ios/standard_controls/fonts/enumerate_fonts/ www.developer.xamarin.com/recipes/ios/standard_controls/fonts/enumerate_fonts/]
=== '''Kontakt''' ===
Wenn Sie Fragen oder Anmerkungen zu diesem Artikel haben, melden Sie sich bitte bei uns:<br />
[http://mailto:techcorner@max-it.de techcorner@max-it.de].<br />
'''Über m.a.x. Informationstechnologie AG:''' <br />
Als etabliertes Münchner Systemhaus zeichnen wir uns seit 1989 als verlässlicher IT-Partner mittelständischer und großer Unternehmen aus. Unser Portfolio reicht von IT- Services über individuelle Softwareentwicklung bis hin zur ERP-Beratung.
==='''Tags'''===
Xamarin, android, ios, app, schriftart, schrift, benutzerdefiniert
[[Kategorie: Softwareentwicklung]]

Aktuelle Version vom 15. September 2026, 00:00 Uhr

HinweisXamarin hat am 1. Mai 2024 das Support-Ende erreicht; Nachfolger ist .NET MAUI. Dieser Artikel bleibt als Referenz erhalten – für neue Projekte gilt .NET MAUI.

Symptom

Eigene Schriftarten (Custom Fonts) in einer Xamarin-App werden nicht angewendet – die App nutzt weiter die Standardschrift.

Xamarin.Android

  1. Schriftdatei (z. B. MeineSchrift.ttf) im Ordner Assets ablegen.
  2. In den Eigenschaften als BuildAction AndroidAsset einstellen.
  3. Im Code verwenden:
public static Typeface MeineAppSchrift =
    Typeface.CreateFromAsset(Application.Context.Assets, "MeineSchrift.ttf");

TextView meinTextView = FindViewById<TextView>(Resource.Id.MeinTextView);
meinTextView.Typeface = MeineAppSchrift;

Xamarin.iOS

  1. Schriftdatei im Ordner Resources ablegen, BuildAction BundleResource.
  2. In der Info.plist (per XML-Editor) registrieren:
<key>UIAppFonts</key>
<array>
    <string>MeineSchrift.ttf</string>
</array>
  1. Im Code den Schriftnamen (nicht den Dateinamen) verwenden:
public static string MeineAppSchrift = "MeineSchrift";

meinLabel.Font = UIFont.FromName(MeineAppSchrift, 20);

Den Schriftnamen erfahren Sie, wenn Sie die .ttf-Datei öffnen.

Unterstützung von m.a.x. it

Bei plattformübergreifender App- und Software­entwicklung unterstützt Sie m.a.x. it mit individueller Softwareentwicklung.


Über m.a.x. it Die m.a.x. Informationstechnologie AG ist seit über 30 Jahren IT-Partner mittelständischer und großer Unternehmen in München und bietet maßgeschneiderte Lösungen und Services in den Bereichen Cloud, Cybersecurity, Netzwerk, Windows, Linux und Softwareentwicklung. Sie haben eine Frage zu diesem Artikel oder brauchen Unterstützung? Kontakt aufnehmen