6
votes

Appliquer une police de police à tous les contrôles de Silverlight 4 bêta

J'aimerais donner tous les Control un certain FontFamily et Fontweight dans Silverlight 4.0. Je sais que ces styles peuvent désormais s'appliquer à tous les contrôles d'un certain type, alors j'ai essayé ceci: xxx

Malheureusement, cela ne semble pas fonctionner. Je peux le faire pour les types qui dérivent de contrôler , cependant. Par exemple, réglage cibletype à applique ces valeurs à chaque bouton dans mon application.

Pourquoi ne puis-je pas Faites ceci pour la classe de base , puis?


0 commentaires

3 Réponses :


5
votes

Le style de contrôle étant attaché au système de type peut être un peu trompeur. C'est en fait basé sur la valeur des commandes defaultStyleKeyKey code>. Dans le cas d'une touche code> code> La valeur est typeof (bouton) code> et pour un textbox code> il est typeof (textbox) code >.

Un style par défaut sera appliqué à une commande si la valeur code> cibletype code> est égale aux commandes defaultStyleKey code> valeur. Il n'y a pas d'examen de savoir si le type code> dans le defaulttylekeykeykey code> est une dérivée du cibletype code>. P>

Les propriétés liées à la police sont Un cas particulier puisque la plupart des contrôles hériteront des valeurs des propriétés de police du contexte contenant. Par conséquent, vous pouvez effectuer efficacement le même résultat en spécifiant FontFamily code> et Poids de police code> sur l'élément USERCONTROL. P>

edit p >

d'un commentaire de l'OP: - P>

J'espérais que je pouvais la mettre au même endroit et que chaque Urercontrol dans toute la demande, prenez ce style. P> BlockQuote>

Le plus proche que vous puissiez obtenir, c'est de placer un style clé dans les ressources de l'application et de vous assurer que tous les utilisateurs d'UserControls se lient à ce style. Bien sûr, cela nécessite toujours une certaine coopération pour chaque contrôle de l'utilisateur, mais au moins les choix de polices restent en une seule place. P>

par exemple dans App.xaml: - P>

<UserControl ...namespace stuff here...
   Style="{StaticResource Common}">
  <!-- ... content here ... -->


1 commentaires

Merci, ça a du sens. Bien que j'espérais que je pouvais la définir au même endroit et que tout USercontrol dans toute la demande, prenez ce style. Je suppose que je pourrais faire un usercontrol personnalisé pour baser les autres, cependant.



1
votes

Je le fais en spécifiant FontFamily dans mon visuel racine. Tous les contrôles de l'enfant sans bordure FontFamily explicite, dérivent FontNamily de la racine visuelle.

Seul Childrwindow a besoin d'un réglage de FontFamily supplémentaire, car il est hébergé dans la racine "Über" (comme popup).


1 commentaires

Quel est le XAML que vous effectuez le cadre? Visual racine ne prend pas de styles.



1
votes

Cela serait utile: xxx


0 commentaires