wie lokale Fontnamen in silverlight zu wissen sind

8

in Silverlight 4 Ich muss alle Schriftartnamen in meinen Maschinen kennen. Verwenden von ....

...

%Vor%

...

Ich kann nur FontFileName bekommen, aber eigentlich brauchen wir den Fontnamen um es zu zeigen ....

Wie kann man solche Informationen bekommen?

Danke euch allen!

    
user322416 24.04.2010, 18:02
quelle

3 Antworten

4

Generiere eine Nachschlagetabelle für Silverlight:

WPF hat die entsprechenden Eigenschaften, Silverlight jedoch nicht.

Wenn Sie sich die System.Windows.Media.Typeface-Objekte im Debugger anschauen, enthalten die Fonts nichts außer 2 Versionsnummern und FontUri (Lese-Dateiname).

Sie könnten ein Nachschlagewörterbuch generieren, indem Sie Code unter WPF ausführen, um alle Dateinamen und übereinstimmenden Schriftartnamen zu extrahieren, aber Sie müssen dies auf einem Computer mit jeder installierten Schriftart tun, die Sie abdecken möchten.

Der unten stehende WPF-Code extrahiert eine solche Tabelle (diese enthält die Schriftartnamen in allen Sprachen, daher möchten Sie wahrscheinlich einen Filter hinzufügen, z. B. mit "en-us"):

%Vor%

Ein Teil der Ausgabe wird unten gezeigt und könnte leicht in eine Tabelle formatiert oder als ein Wörterbuch in Silverlight geladen werden:

%Vor%     
Gone Coding 17.08.2010 15:57
quelle
0

Siehe diese Antwort.

Ich landete mit Fonts.SystemFontFamilies auf der SERVER (in der PresentationCore-DLL), Senden des Ergebnisses (von der Source -Eigenschaft) über einen Serviceaufruf an die Silverlight-App. Nicht perfekt, aber das Beste, was ich finden konnte.

    
Peet Brits 16.09.2011 09:14
quelle
0

Ich habe auch versucht, System.Windows.Media.Fonts.SystemTypefaces zu verwenden, aber wie du erwähntest, gibt es nur den Namen der Schriftartdatei. Nachdem ich viel im Internet gelesen und recherchiert hatte, entschied ich mich, P / Invoke zu verwenden, um das Problem zu lösen. Wenn Sie die Wahl haben, Ihre Anwendung als OOB (Out of Browser) mit erhöhter Vertrauenswürdigkeit auszuführen, wie ich es getan habe, wird die folgende P / Invoke-Lösung funktionieren. Danke an www.pinvoke.net für alle Methoden / Strukturdefinitionen.

%Vor%

Die Verwendung der Klasse ist sehr einfach. Unten ist ein Beispiel XAML-Markup

%Vor%

Fügen Sie im Code hinter der XAML-Seite Folgendes hinzu:

%Vor%     
siva 05.06.2012 21:32
quelle