Problème avec l'application du style sur WPF UserControl
J'ai un contrôle utilisateur et je veux l'utiliser dans un autre projet. Il n'y a pas de problème lorsque j'ai mis un peu de valeur à ses propriétés directement:
<local:MyUserControl prop1="val1" prop2="val2">
...
</local:MyUserControl>
Mais je ne peux pas appliquer un style à elle. J'ai essayé:
<Window ...>
<Window.Resources>
<Style x:Key="MyUserControlStyle" TargetType="{x:Type local:MyUserControl}">
<Setter Property="prop1" Value="val1"/>
<Setter Property="prop2" Value="val2"/>
</Style>
</Window.Resources>
<Grid>
<local:MyUserControl Style="{StaticResource ResourceKey=MyUserControlStyle}">
...
</local:MyUserControl>
</Grid>
</Window>
Où ai-je tort? -Merci
Salut cher @Mario! Je l'ai corrigée. -Merci
Voyez-vous une erreur, ou êtes-vous juste de ne pas voir votre style appliqué?
Mon de contrôle de l'utilisateur est un défilement de l'observateur, qui montre une flèche animée en forme de bouton dans tous les requis du côté de son enfant. Quand j'applique le style, la flèche en forme de boutons disparaissent. (Je ne reçois aucune erreur ni au desing-temps, ni au moment de l'exécution.)
Où avez-vous déclaré le Style de la balise? Est-il inclus dans une section de Ressources hiérarchiquement ancêtre de l'endroit où le MyUserControl instance de mensonges?
Je vais modifier la question et vous donnera une image plus grande.
Voyez-vous une erreur, ou êtes-vous juste de ne pas voir votre style appliqué?
Mon de contrôle de l'utilisateur est un défilement de l'observateur, qui montre une flèche animée en forme de bouton dans tous les requis du côté de son enfant. Quand j'applique le style, la flèche en forme de boutons disparaissent. (Je ne reçois aucune erreur ni au desing-temps, ni au moment de l'exécution.)
Où avez-vous déclaré le Style de la balise? Est-il inclus dans une section de Ressources hiérarchiquement ancêtre de l'endroit où le MyUserControl instance de mensonges?
Je vais modifier la question et vous donnera une image plus grande.
OriginalL'auteur Mimi | 2011-09-19
Vous devez vous connecter pour publier un commentaire.
À l'aide de cher @Mario Vernari les instructions, j'ai trouvé que le problème était dû à une mauvaise stratégie que j'ai utilisé pour créer mon UserControl. Je voulais créer un UserControl qui sera en mesure de tenir certaines autres. J'avais donc essayé ceci:
Où
DP1
est une propriété de dépendance de typeBrush
. Le contrôle UserControl qui a été créé par le biais de cette façon, vous pouvez définir ses propriétés (commeDP1
) directement. Absolument, ce n'est pas le vrai chemin que @Mario m'a dit:Et il a ajouté:
Évidemment, dans ce cas, nous devons tirer notre lookless contrôle de
ContentControl
classe (au lieu deControl
classe). Vous pouvez prendre un coup d'oeil à cette & cette à maîtriser les détails.Ici, je rends grâce à @Mario. 😉
OriginalL'auteur Mimi
Vous donner
Style="{StaticResource ResourceKey=MyUserControlStyle}"
.C'est juste -
Style="{StaticResource MyUserControlStyle}"
.Le dernier exemple que vous donnez est juste un raccourci pour la première.
ResourceKey
est la propriété par défaut de laStaticResource
markupextension et donc vous n'avez pas pour le nom.OriginalL'auteur Varun Jain