2009-09-09 6 views
0

J'ai UserControls contenant d'autres contrôles. Je veux que si je définis une couleur de premier plan pour le UserControl, tous les contrôles enfants héritent automatiquement. J'ai le même problème avec le style de police/taille. Puis-je définir ces propriétés d'une manière ou d'une autre sur Auto/Hériter? Est-ce possible de régler tous les sous-contrôles sans boucle?WPF: comment hériter les valeurs de propriété de tous les contrôles enfants?

Répondre

3

Vous pouvez créer des dictionnaires de ressources pour définir globalement des styles par défaut.

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'appliquent à tous les objets enfants qui ne sont pas explicitement un style défini ...

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> 
1

Examinez les paramètres Styles et BasedOn. J'ai récemment écrit un exemple de quelque chose de similaire here. Malheureusement, la question était liée à Silver Lite, donc n'a pas répondu à la question, mais je pense que cela peut vous donner quelques idées sur où regarder.

Questions connexes