Le style par défaut de mon contrôle personnalisé est défini dans Generic.xaml et fonctionne correctement.Définition du style implicite du contrôle personnalisé dans WPF
Cependant, lorsque j'essaie de changer le style de mon contrôle personnalisé de la même manière que l'on peut avec des commandes intégrées, rien ne se passe. Dans App.xaml Je suis en train de changer le style par défaut de mon contrôle en procédant comme suit:
<Style TargetType="{x:Type my:CustomControl}">
<Setter Property="Background" Value="Red"/>
</Style>
Si je mets x: propriété clé du style et référence au-dessus de ce style en utilisant cette touche tout fonctionne très bien.
Est-il correct que la méthode de style ci-dessus fonctionne uniquement pour les contrôles intégrés et ne fonctionne pas pour les contrôles personnalisés, ou est-ce que je fais juste quelque chose de mal? Existe-t-il une solution réalisable pour réaliser ce type de style pour les contrôles personnalisés?
Mise à jour Dans cette situation, mon contrôle personnalisé est dérivé de System.Windows.Window.
Êtes-vous la mise en DefaultStyleKeyProperty.OverrideMetadata dans le constructeur statique ou que vous faites une solution de contournement? – shadow32
"Est-il correct que la méthode de style ci-dessus ne fonctionne que pour les contrôles intégrés et ne fonctionne pas pour les contrôles personnalisés ...?" Non ce n'est pas vrai. Vous avez probablement fait quelque chose de mal dans la déclaration de votre contrôle. Vous devriez le montrer aussi. – Clemens
Suite aux commentaires de Clemens, j'ai essayé de reproduire mon cas dans un nouveau projet. Lorsque vous créez un contrôle personnalisé qui hérite de TextBox, le style implicite fonctionne correctement. Toutefois, lorsque vous utilisez exactement la même configuration et que vous modifiez simplement le contrôle pour hériter de Window (qui était mon problème d'origine), le style implicite ne fonctionne pas. Y a-t-il un problème avec le style implicite lorsque vous utilisez une fenêtre comme classe de base par opposition à d'autres contrôles? – user6836683