Quelle est la méthode recommandée pour traiter une application entière dans WPF?
Question
Je souhaite que mon application WPF soit modifiable, en appliquant un certain modèle XAML, et que les modifications soient appliquées à l'ensemble de l'application, même pour les contrôles dynamiques ou les contrôles ne figurant même pas dans l'arborescence visuelle / logique.
Que puis-je utiliser pour réaliser ce type de fonctionnalité? Existe-t-il de bonnes ressources ou des tutoriels montrant comment cette tâche spécifique peut être effectuée?
La solution
L'approche de base à adopter consiste à utiliser des ressources tout au long de votre application et à remplacer dynamiquement les ressources au moment de l'exécution.
Voir http://www.nablasoft.com/alkampfer/index.php/2008/05/22/simple-skinnable-and-theme-management-in-wpf-user-interface/ pour l'approche de base
Autres conseils
Le remplacement de la ressource fonctionnera, mais j’ai trouvé "un skinning structural". être plus puissant! En savoir plus sur CodeProject ...
J'ai trouvé le moyen d'appliquer des modèles génériques à tous les contrôles sans utiliser de clés de modèle. La solution consiste à utiliser le type de contrôle en tant que clé Style.
Exemple:
<Application.Resources>
<Style x:Key="{x:Type Button}" TargetType="{x:Type Button}">
<Setter Property="Button.Background" Value="CornflowerBlue"/>
<Setter Property="Button.Template">
<Setter.Value>
<ControlTemplate x:Name="MyTemplate">
...
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Application.Resources>
ici, la clé de style est x: Key = "{x: Type Button}", de sorte que le style sera appliqué à tous les contrôles de type bouton sans que celui-ci déclare que la propriété Style est une ressource statique ou dynamique.