2010-12-03 13 views
5

Je cherche à savoir s'il est possible d'utiliser une police à l'échelle de l'application dans les contrôles Silverlight pouvant être définie dans une application.resources, puis utilisée dans toute l'application. Ils n'ont pas besoin de spécifier les autres choses à propos d'une police comme gras ou italique, juste le nom. Généralement, ceci est pour les polices personnalisées qui nécessiteraient d'être intégrées dans l'application. Par exemple, je suis à la recherche de quelque chose de simple comme (non de tout type de contrôle particulier ou contrôle) ...Ressources de polices à l'échelle de l'application dans Silverlight

<Setter x:Key="My First Font" 
     Property="FontFamily" 
     Value="VINERTIC.TTF#Viner Hand ITC" /> 

Puis, dans un contrôle donné, je taperait ...

<TextBlock FontFamily="{StaticResource "My First Font"}" 
      x:Name="ApplicationTitle" 
      Text="NEXT PAGE" Foreground="Red"/> 

. ..ou ...

FontFamily="{Binding "My First Font"}" 

ou quelque chose comme ça.

Je sais que ce que j'ai fait ne fonctionne pas, mais c'est l'effet désiré.

Je n'arrive pas à trouver de documentation sur la façon de définir des familles de polices à l'échelle de l'application. Aucun conseil?

Répondre

4

Voici quelques informations qui vous aideront à démarrer.

Tout d'abord, la meilleure façon que je connaisse pour intégrer une police dans une bibliothèque partagée (ex: une bibliothèque Silverlight classe), est de faire ce qui suit:

  1. Avoir une bibliothèque de classes, et connaître sa valeur par défaut espace de nommage. Pour cet exemple, l'espace de noms par défaut de la bibliothèque de classes est Common.Windows.
  2. Avoir une police. Pour cet exemple, Action Man Bold.ttf, qui contient la police nommée Action Man.
  3. Ajoutez la police quelque part dans le projet de bibliothèque partagée. Par exemple, le dossier Assets/Fonts.
  4. Définissez l'action de construction sur le fichier sur Ressource.
  5. Générez le projet.

Après avoir suivi ces étapes, vous pouvez vous référer à la police où vous s'il vous plaît, y compris les styles, avec une syntaxe similaire au bloc de texte ci-dessous:

<TextBlock 
FontFamily="/Common.Windows;component/Assets/Fonts/Action Man Bold.ttf#Action Man" /> 

Notez que l'expression FontFamily ci-dessus a travaillé dans le conteneur projet et dans un projet de référencement. Je n'ai pas testé ce processus avec une archive zip de polices de caractères, mais je parierais un rock extravagant sur le jardin que cela fonctionnerait encore.

Cela devrait vous aider à démarrer.Si vous êtes intéressé à aller extra (et utile) pas de déclarer la police dans un style, et en utilisant le style de vos commandes, pensez à jeter un oeil à cette ressource:

http://www.silverlight.net/learn/quickstarts/control-styles/

+0

+1, je veux juste pour ajouter que la police intégrée Blend ne fonctionne pas dans une classe Lib. C'est le seul moyen de le faire fonctionner. –