Dans Silverlight 4, il est possible d'utiliser un style implicite - et c'est incroyable! Mais que faire si je veux appliquer un style à tous mes Boutons, CheckBoxes et RadioButtons (tout en héritant de ButtonBase)? Je ne peux pas définir TargetType sur le Style à ButtonBase - cela ne fonctionne pas. Ai-je besoin de créer un style pour chacun des 3 types de contrôle?Silverlight 4 et le style implicite
Répondre
xamlgeek,
Les styles implicites suivants fonctionnent bien pour moi. Je crée d'abord des noms/styles à clés, en utilisant les styles communs de BasedOn où possible. Ensuite, je crée simplement les styles implicites BasedOn les styles nommés/... à clé
<Style x:Key="BaseStyle" TargetType="Control">
<Setter Property="FontFamily" Value="{StaticResource FontFamily}" />
<Setter Property="FontSize" Value="{StaticResource FontSize}" />
<Setter Property="Foreground" Value="{StaticResource FontBrush}" />
</Style>
<Style x:Key="BaseStyleCentered" TargetType="Control" BasedOn="{StaticResource BaseStyle}">
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
<Style x:Key="CommonCheckBox" TargetType="CheckBox" BasedOn="{StaticResource BaseStyleCentered}">
<Setter Property="Cursor" Value="Hand" />
</Style>
<Style x:Key="CommonRadioButton" TargetType="RadioButton" BasedOn="{StaticResource BaseStyleCentered}">
<Setter Property="Cursor" Value="Hand" />
</Style>
<Style x:Key="CommonButton" TargetType="Button" BasedOn="{StaticResource BaseStyleCentered}">
<Setter Property="Cursor" Value="Hand" />
<Setter Property="Padding" Value="10,0,10,0" />
<Setter Property="MinWidth" Value="{StaticResource ButtonWidth}" />
<Setter Property="MinHeight" Value="{StaticResource ButtonHeight}" />
</Style>
<Style TargetType="CheckBox" BasedOn="{StaticResource CommonCheckBox}">
</Style>
<Style TargetType="RadioButton" BasedOn="{StaticResource CommonRadioButton}">
</Style>
<Style TargetType="Button" BasedOn="{StaticResource CommonButton}">
</Style>
Bonne chance,
Jim
YinYangMe, YinYangMoney et FaceToFaceSoftware
Vos styles ne sont pas des styles implicites Ce sont des styles nommés Les styles implicites n'ont pas de clé et seulement un TargetType – Jehof
@Jehof: Désolé, j'ai corrigé mon explication dans l'extrait de code ci-dessus –
- 1. Silverlight Style implicite dans les éléments ControlLibrary
- 2. style de grille personnalisée dans silverlight 4
- 3. Concombre et Silverlight 4
- 4. BounceEase et silverlight 4 BarSeries
- 5. Silverlight 4 et XBAP
- 6. Silverlight 4 et le contrôle ContextMenu
- 7. Sockets Silverlight 4 et TCP
- 8. Silverlight 4 et Page.Resources Binding
- 9. Utiliser initParams dans le projet Silverlight 4
- 10. Silverlight 4 DataGrid style en-tête de colonne
- 11. Silverlight 4 Premier ColorAnimation
- 12. Silverlight 4 Toolkit Graphique question
- 13. DataGrid et GridSplitter dans Silverlight 4
- 14. Silverlight 4: DataForm, currentItem et AutoCommit
- 15. Problème Silverlight 4, Google Chrome et HttpWebRequest
- 16. Silverlight 4 et les procédures stockées
- 17. compatibilité mvvm-light et silverlight 4
- 18. Silverlight PRISM et fichiers de style «loose»
- 19. Silverlight 4 et SAMI Sous-titres
- 20. Couverture de code et Silverlight 4
- 21. Silverlight 4 et Youtube Flash Player
- 22. Silverlight - Style et comportement de ListBox
- 23. Silverlight 4: Détecter le navigateur F5/refresh et X/Close
- 24. Faites glisser et déposez le fichier dans Silverlight 4?
- 25. SIlverlight 4, FilterDescriptor et GUID comme FilterOperator
- 26. Silverlight 4 et hors du navigateur
- 27. Comment trouver le contrôle des enfants ajouté dans un style dans silverlight 4?
- 28. comment personnaliser le style d'élément sélectionné dans la liste d'argent dans silverlight 4
- 29. Silverlight Listbox Élément Style
- 30. WCF RIA, Silverlight 4
OK il est donc pas possible :( Citation du lien: "Notez que le type cible doit correspondre exactement à un style typé à appliquer.Par exemple, si vous spécifiez la clé du style, l'élément cible peut être une sous-classe de la cible. Type. Mais un style tapé est généralement appliqué aux éléments dont le type correspond exactement! Ceci est fait pour éviter les surprises. Par exemple, vous avez peut-être créé un Style pour tous les ToggleButtons dans votre application et vous ne voulez pas que ce style soit appliqué à des CheckBoxes (qui dérivent du ToggleButton). " – thomasmartinsen
yups c'est le cas pour éviter les surprises non désirées de l'héritage –