Partager via


x:Shared, attribut

Lorsque la valeur est définie false, modifie le comportement de récupération des ressources WPF afin que les demandes de la ressource attribuée créent une instance pour chaque requête au lieu de partager la même instance pour toutes les requêtes.

Utilisation d'attributs XAML

<ResourceDictionary>
  <object x:Shared="false".../>
</ResourceDictionary>

Notes

x:Shared est mappé à l’espace de noms XAML du langage XAML et est reconnu comme un élément de langage XAML valide par les services XAML .NET et ses lecteurs XAML. Toutefois, les fonctionnalités x:Shared indiquées sont uniquement pertinentes pour les applications WPF et pour l’analyseur XAML WPF. Dans WPF, x:Shared n’est utile qu’en tant qu’attribut lorsqu’il est appliqué à un objet qui existe dans un WPF ResourceDictionary. Les autres utilisations ne lèvent pas d’exceptions d’analyse ou d’autres erreurs, mais elles n’ont aucun effet.

La signification de x:Shared n’est pas spécifiée dans la spécification du langage XAML. D’autres implémentations XAML, telles que celles qui s’appuient sur les services XAML .NET, ne fournissent pas nécessairement la prise en charge du partage de ressources. Ces implémentations XAML peuvent fournir un comportement similaire dans l’infrastructure de prise en charge qui a également utilisé des x:Shared valeurs.

Dans WPF, la condition par défaut x:Shared pour les ressources est true. Cette condition signifie que toute demande de ressource donnée retourne toujours la même instance.

La modification d’un objet retourné par le biais d’une API de ressource, par FindResourceexemple, ou la modification d’un objet directement dans un ResourceDictionary, modifie la ressource d’origine. Si les références à cette ressource étaient des références de ressources dynamiques, les consommateurs de cette ressource obtiennent la ressource modifiée.

Si les références à la ressource étaient des références de ressources statiques, les modifications apportées à la ressource après le temps de traitement XAML ne sont pas pertinentes. Pour plus d’informations sur les références de ressources statiques et dynamiques, consultez Vue d’ensemble des ressources XAML (WPF .NET)

La spécification x:Shared="true" explicite est rarement effectuée, car il s’agit déjà de la valeur par défaut. Il n’existe pas d’équivalent de code direct dans x:Shared le modèle objet WPF ; il ne peut être spécifié que dans une utilisation XAML et doit être traité par le comportement WPF par défaut ou dans un flux de nœud XAML intermédiaire sur le chemin de chargement s’il est traité à l’aide des services XAML .NET et de ses lecteurs XAML.

Dans ce casx:Shared="false", si vous définissez une FrameworkElement classe ou FrameworkContentElement une classe dérivée en tant que ressource, puis que vous introduisez la ressource d’élément dans un con mode tente l. x:Shared="false" permet à une ressource d’élément d’être introduite plusieurs fois dans la même collection (par exemple, a UIElementCollection). Sans x:Shared="false" cela, cela n’est pas valide, car la collection applique l’unicité de son contenu. Toutefois, le x:Shared="false" comportement crée une autre instance identique de la ressource au lieu de retourner la même instance.

Un autre scénario x:Shared="false" consiste à utiliser une Freezable ressource pour les valeurs d’animation, mais que vous souhaitez modifier la ressource en fonction de l’animation.

La gestion des chaînes n’est false pas sensible à la casse.

Dans WPF, x:Shared n’est valide que dans les conditions suivantes :

Voir aussi