J'ai peut-être manqué quelque chose d'évident avec WPF, mais est-il possible de créer des styles qui fonctionnent hiérarchiquement avec les contrôles enfants du contrôle ciblé? Pour mieux expliquer, pensez à la façon dont CSS fonctionne pour le style HTML. Vous pouvez cibler les contrôles avec CSS hiérarchisés par sélecteurs:Hiérarchie de style WPF?
div > span em
{
color: blue;
}
ul.class > li ul li
{
display: block;
margin: 0px;
}
Est-il possible d'obtenir la même chose avec des styles WPF? Jusqu'à présent, j'ai créé des styles pour chaque type de contrôle ou styles nommés que j'applique directement à un contrôle. Cependant, je finis avec beaucoup plus de styles que j'ai vraiment l'intention, et il est presque impossible de mettre en forme les structures de contrôle en tant que groupe.
Merci pour tout commentaire.
MISE À JOUR:
Voici un exemple de ce que je voudrais être en mesure de le faire. Notez que seul le contrôle ListView racine a un style appliqué. Je voudrais être en mesure de cibler l'un des contrôles enfants dans l'un des CellTemplates sans avoir à appliquer directement le style à chacun de ces contrôles enfants. Cela permet de mieux découpler et d'isoler le balisage d'affichage de ma vue du balisage de style, ce qui me donne beaucoup plus de liberté pour changer de style sans avoir à créer explicitement un style pour chaque contrôle de mon application entière.
<Grid>
<ListView Style="{StaticResource ProcessableItemsListView}">
<ListView.View>
<GridView>
<GridViewColumn Width="10">
<GridViewColumn.CellTemplate>
<Grid>
<CheckBox Value="{Binging ...}" />
</Grid>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Width="*">
<GridViewColumn.CellTemplate>
<Grid>
<TextBlock Text="{Binding ...}" />
</Grid>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Width="80">
<GridViewColumn.CellTemplate>
<Grid>
<Button Command="{Binding ...}">Process</Button>
</Grid>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Width="120">
<GridViewColumn.CellTemplate>
<Grid>
<ProgressBar Value="{Binding ...}" />
</Grid>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListBiew>
</Grid>
Un peu tard, mais voir http://www.codeproject.com/Articles/36499/Using-CSS-Selectors-for-Styling-in-WPF –
@BorisB. Merci! Des trucs géniaux! – jrista