Announcement

Collapse
No announcement yet.

[WPF] Schriftart als Resource wird nicht angezeigt

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • [WPF] Schriftart als Resource wird nicht angezeigt

    Moin,

    Ich habe eine Projektvorlage, in der ich bspw. FontAwesome einbinde, was auch tadellos funktioniert.
    Nun möchte ich eine weitere Schriftart einbinden und das funktioniert leider weder im Designer, noch in der Ausführung.

    Ich gehe dabei folgendermaßen vor:

    Die Schriftarten liegen im Projekt unter Fonts und sind alle als Resource im Buildvorgang eingetragen.
    Ich habe darin auch eine Resourcendatei FontsInclude.xaml angelegt, in der alle Schriften auf die gleiche Weise definiert sind:
    Code:
    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    
        <FontFamily x:Key="FA6Solid">/Fonts/FA6Solid.otf#Font Awesome 6 Free Solid</FontFamily>
        <FontFamily x:Key="FA6Regular">/Fonts/FA6Regular.otf#Font Awesome 6 Free Regular</FontFamily>
        <FontFamily x:Key="FA6Brands">/Fonts/FA6Brands.otf#Font Awesome 6 Brands Regular</FontFamily>
    
        <FontFamily x:Key="ErasBold">/Fonts/ERASBD.TTF#Eras Bold ITC</FontFamily>
    
    </ResourceDictionary>
    Datei- und Schriftartename sind korrekt, würde einen Screenshot machen, kann hier aber seit Jahren schon keine Bilder mehr posten, interessiert leider nur niemanden!

    Diese Resourcendatei wird dann in der App.xaml eingebunden:
    Code:
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="Styles/DataGridStyles.xaml"/>
                <ResourceDictionary Source="Styles/ButtonStyles.xaml"/>
                <ResourceDictionary Source="Fonts/FontsInclude.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
    Jetzt kann ich bspw. die Schriften von FontAwesome wie folgt einbinden:
    Code:
    <TextBlock FontFamily="{StaticResource FA6Solid}" .../>
    Versuche ich das hingegen mit der Schriftart ERASBD.TTF, klappt das nicht:
    Code:
    <TextBlock FontFamily="{StaticResource ErasBold}" .../>
    Sowohl der Designer, als auch die Executable fallen auf einen Fallback zurück.

    Ich habe auch andere, beschriebene Wege probiert, aber bei mir haut das alles nicht hin, bspw.:
    https://stackoverflow.com/questions/...-installing-it
    https://www.reddit.com/r/dotnet/comm...wpf/?rdt=50428
    https://learn.microsoft.com/en-us/an...ded-fonts-in-x


    Hat vielleicht noch jemand einen Tipp?


    EDIT:
    Ach so, Alles unter .NET 4.8 aus Kompatiblitätsgründen zum ERP.
    PHP rocks!
    Eine Initiative der PHP Community

  • #2
    Mal testweise eine andere TTF verwendet? Einfach um sicherzustellen das es nicht an diesem spezielle Font liegt.

    Comment


    • #3
      Auf das einfachste kommt man nicht
      Andere Schriften scheinen zu funktionieren, dann muss ich wohl eine andere verwenden, mal sehen welche passt.

      Danke


      EDIT:
      Es scheint nur mit Fonts zu gehen, die auf dem System installiert sind
      Genau das möchte ich ja mit der Methode umgehen.

      Hat jemand einen Tipp, wie ich das hinbekomme?
      Ich meine in den Tutorials steht z.T. auch, dass man den Weg geht, um die Schrift nicht installieren zu müssen?!


      EDIT 2:
      Klappt tatsächlich auch mit nicht installierten Schriften, die ich herunterlade ohne zu installieren.
      Nur die, die ich eigentlich benötige geht nicht

      Aber egal, ich habe jetzt eine ähnliche, so dass das Gesamtbild sich nicht zu sehr ändert.

      Danke
      Zuletzt editiert von Arne Drews; 14.02.2024, 08:02.
      PHP rocks!
      Eine Initiative der PHP Community

      Comment

      Working...
      X