Modèles et styles inline
Windows Presentation Foundation (WPF) fournit des objets Style et des objets de modèle (FrameworkTemplate sous-classes) comme moyen de définir l’apparence visuelle d’un élément dans les ressources, afin qu’ils puissent être utilisés plusieurs fois. Pour cette raison, les attributs en XAML qui prennent les types Style et FrameworkTemplate font presque toujours des références de ressources aux styles et modèles existants plutôt que de définir de nouveaux en ligne.
Limitations des styles et modèles inline
Dans XAML (Extensible Application Markup Language), les propriétés de style et de modèle peuvent être définies techniquement de deux manières. Vous pouvez utiliser la syntaxe d’attribut pour référencer un style défini dans une ressource, par exemple <
objetStyle="{StaticResource
myResourceKey}" .../>
. Vous pouvez également utiliser la syntaxe d’élément de propriété pour définir un style inline, par exemple :
<
objet>
<
objet.Style>
<
Style
.../>
</
objet.Style>
</
objet>
L’utilisation des attributs est beaucoup plus courante. Un style défini inline et non défini dans les ressources est nécessairement limité à l’élément conteneur uniquement et ne peut pas être réutilisé aussi facilement, car il n’a pas de clé de ressource. En général, un style défini par des ressources est plus polyvalent et utile, et s'aligne davantage sur le principe du modèle de programmation WPF (Windows Presentation Foundation), qui consiste à séparer la logique du programme dans le code du design dans le balisage.
En règle générale, il n’existe aucune raison de définir un style ou un modèle inline, même si vous envisagez uniquement d’utiliser ce style ou ce modèle à cet emplacement. La plupart des éléments qui peuvent prendre un style ou un modèle prennent également en charge une propriété de contenu et un modèle de contenu. Si vous n’utilisez qu’une seule fois l’arborescence logique que vous créez par le biais de l’application d’un style ou du templating, il serait encore plus facile de remplir cette propriété de contenu avec les éléments enfants équivalents dans les marques directes. Cela contournerait complètement les mécanismes de style et de modèle.
D’autres syntaxes activées par les extensions de balisage qui retournent un objet sont également possibles pour les styles et les modèles. Deux extensions de ce type qui ont des scénarios possibles incluent TemplateBinding et Binding.
Voir aussi
.NET Desktop feedback