Question

J'ai UserControls contenant d'autres contrôles. Je souhaite que si je définis une couleur de premier plan pour UserControl, tous les contrôles enfants en héritent automatiquement. J'ai le même problème avec le style et la taille de la police.

Puis-je définir ces propriétés d'une manière ou d'une autre pour auto / hériter? Est-il possible de définir tous les sous-contrôles sans boucle?

Était-ce utile?

La solution

Vous pouvez créer des dictionnaires de ressources pour définir les styles par défaut de manière globale.

Vous pouvez également référencer un dictionnaire de ressources ou définir un style dans n’importe quel objet.

Dans les deux cas, ces styles s'appliqueront à tous les objets enfants pour lesquels aucun style n'a été défini explicitement ...

Exemple:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
    <!--Default styles that will apply to any object of the specified type (if it doesn't have style set locally)-->
    <Style TargetType="Label" >
        <Setter Property="FontWeight" Value="Bold"/>
        <Setter Property="Margin" Value="0"/>
        <Setter Property="Padding" Value="0"/>
    </Style>
</ResourceDictionary>

Autres conseils

Examinez les paramètres Styles et BasedOn.

J'ai récemment écrit un exemple de quelque chose de similaire situé ici . Malheureusement, la question était liée à Silver Lite et n’a donc pas répondu à la question, mais je pense que cela peut vous donner quelques idées sur les endroits où chercher.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top