Pour tous les styles de WPF, vous devez disposer d'un dictionnaire de ressources distinct contenant les styles de votre application.
Si vous souhaitez avoir une seule taille de police réutilisée dans l'application, créez simplement un style pour cette taille de police. Vous pouvez lui donner un nom/une clé unique à utiliser explicitement ou vous pouvez définir un targetType qui transcende tout au long de l'application.
explicite clé:
<Style
x:Key="MyFontSize"
TargetType="TextBlock">
<Setter
Property="FontSize"
Value="10" />
</Style>
<Control
Style="{StaticResource MyFontSize}" />
* Notez que ce style peut être utilisé avec des commandes qui ont contentPresenters
Pour tous TextBlocks dans l'application:
<Style
TargetType="TextBlock">
<Setter
Property="FontSize"
Value="10" />
</Style>
<TextBlock
Text="This text will be size 10" />
Et si vous avez besoin de changer la taille de la police à la volée, assurez-vous que tous sont déclarés DynamicResource, aussi bien dans les styles et les références de style à « baseStyle ». –
Seroiouslly? J'ai essayé de le faire et j'ai cette erreur: La propriété 'BaseOn' ne supporte pas les valeurs de type 'DynamicResourceExtension'. Je viens de changer le code de StaticResource à DynamicResource. Que pensez-vous qu'il manque? – Carlo
J'ai oublié ce petit problème. Nous avons toutes nos déclarations configurées comme Setters déclarées par contrôle afin que nous n'ayons pas d'énormes hiérarchies. Ce post l'explique plutôt bien. http://stackoverflow.com/questions/585429/using-basedon-style-property-on-dynamicresources –