WPF - Speichern von Schriftarten auf der Festplatte und anschließendes Instanziieren von GlyphTypeface für Schriftarten löst eine Ausnahme aus. Warum

Ich bin mit WPF-Glyphen und -Dokumenten beschäftigt und bin im .Net 4-Framework auf eine Null-Referenz-Ausnahme gestoßen.

Ich extrahiere und speichere TrueType-Schriftarten als .ttf-Dateien und versuche dann, Glyphen basierend auf den Schriftarten zu erstellen. Das erste Mal speichere ich eine Schriftart auf der Festplatte und instanziiere ein GlyphTypeface basierend auf der Schriftartnac Erstellen eines GlyphTypeface aus einer anderen Schriftart im selben Ordner Ich erhalte eine Nullreferenzausnahme.

Sagen Sie, ich habe die Schriftarten A und B. B wurde nicht auf der Festplatte gespeichert (A wurde möglicherweise nicht auf der Festplatte gespeichert; das scheint keine Rolle zu spielen):

1) Speichern Sie B auf der Festplatte im selben Ordner wie A,
2) Erstelle GlyphTypeface mit der Schriftart A,
3) Erstellen Sie GlyphTypeface mit der Schriftart B = Ausnahmebedingung.

Null reference exception at:  
at MS.Internal.FontCache.FontFaceLayoutInfo.IntMap.TryGetValue(Int32 key, UInt16& value)  
at MS.Internal.FontCache.FontFaceLayoutInfo..ctor(Font font)  
at System.Windows.Media.GlyphTypeface.Initialize(Uri typefaceSource, StyleSimulations styleSimulations)  
at System.Windows.Media.GlyphTypeface..ctor(Uri typefaceSource)

Wenn ich meine App neu starte und erneut starte (wobei sich Schriftart B bereits auf der Festplatte befindet), löst Schritt 3 keine Ausnahme aus.

Der Code zum Speichern einer Schriftart auf der Festplatte besteht darin, einen Abschnitt aus einem Binärdatenstrom zu schreiben und die Datei loszulassen:

if (!File.Exists(filename))
{
    using (FileStream fs = File.Create(filename, length))
    {
        fs.Write(m_data, m_index, length);
        fs.Close();
    }
}

Irgendwelche Ideen? Ich möchte nicht jede Schriftart in einem eigenen Ordner ablegen müssen ...

Vielen Dank für Ihre Zeit

Antworten auf die Frage(10)

Ihre Antwort auf die Frage