2016-08-30 1 views
0

Salut, je voulais utiliser une police dans WPF sans télécharger le fichier ttf. La documentation sur la classe FontFamily impliquait que je pouvais utiliser une adresse http comme base Uri pour ma police, mais cela ne semble pas fonctionner et je ne trouve nulle part d'exemple pratique sur la façon de procéder.Pouvez-vous utiliser une URL normale pour créer une nouvelle famille de polices dans WPF?

Alors mon code ressemble à ceci

var newFont = new FontFamily(new Uri("http://myfontservice/myFont.ttf#myFont"), "myFont"); 

C'est le plus complexe d'Uri, j'ai essayé. J'ai également essayé une charge de variations autour de l'utilisation du nom de police mais rien ne semble fonctionner.

Toute aide serait grandement appréciée. Merci

EDIT Également noter le service de police est juste un dossier sur une machine qui a été exposée sur IIs. Donc, les polices sont là en tant que fichiers ttf et l'URL, si elle est utilisée dans un navigateur, téléchargera le fichier ttf.

+0

Recevez-vous des erreurs? – mason

+0

Non aucune erreur, juste que la police n'était pas la police attendue. Je peux utiliser l'URL et obtenir le fichier ttf sans aucun problème. – Kezza

Répondre

0

Ce n'est pas possible comme vous le souhaitez. Selon the MSDN:

Site des polices d'origine: applications WPF ne permettent pas une référence de police à un http ou ftp identifiant uniforme de ressource (URI).

Je suppose que le seul espoir est en cours de téléchargement dans un fichier temporaire et utiliser un URI file:// pour le charger

+0

Merci, malheureusement, PrivateFontCollection ne fonctionne pas avec WPF car il utilise system.drawing.FontFamily et non system.windows.media.FontFamily. – Kezza

+0

@Kezza vous avez en effet raison ... eh bien, vous pouvez télécharger le 'TTF' dans un fichier temporaire, puis utiliser un' file: // 'URI sur le constructeur. Si vous ne pouvez pas écrire de fichiers temporaires, je ne vois pas comment le faire (j'ai mis à jour la réponse) – Jcl

+0

Oui, je pense que c'est ce que je vais devoir faire. Espérait éviter d'écrire dans le système de fichiers. – Kezza