Langage

ControlTemplate.TargetType Propriété

Définition

Obtient ou définit le type auquel le ControlTemplate est appliqué.

public:
 property TypeName TargetType { TypeName get(); void set(TypeName value); };
TypeName TargetType();

void TargetType(TypeName value);
public System.Type TargetType { get; set; }
var typeName = controlTemplate.targetType;
controlTemplate.targetType = typeName;
Public Property TargetType As Type
<ControlTemplate TargetType="typeName"/>

Valeur de propriété

Type auquel le ControlTemplate est appliqué. Cette valeur est généralement définie en XAML, et non dans le code. Voir les remarques.

Remarques

La façon classique de spécifier une valeur TargetType consiste à utiliser un attribut XAML sur controlTemplate. Lorsque vous définissez en XAML, la signification de TargetType et les valeurs que vous fournissez prennent en compte certains aspects de la façon dont les types sont représentés en XAML. En particulier, tous les préfixes qui seraient nécessaires pour faire référence à un type donné en tant qu’élément XAML doivent également être inclus comme valeur de la chaîne de valeur TargetType. Par exemple, si un modèle est destiné à cibler un type personnalisé qui doit être précédé du préfixe déjà mappé « local » dans une étendue de balisage particulière, la valeur TargetType doit inclure ce même préfixe. Ce comportement est activé par le comportement de conversion intégré dans l’analyseur XAML Windows Runtime.

Dans la plupart des cas, vous définissez targetType pour un ControlTemplateControlTemplate se trouve dans un Setter pour la propriété Template . Cela se trouve à son tour dans le style implicite que vous définissez pour un contrôle. La valeur ControlTemplate.TargetType et la valeur Style.TargetType du style conteneur doivent toujours être la même référence de type, faisant référence au même contrôle implicitement nommé. Sinon, le modèle de contrôle peut ne pas fonctionner.

Pour plus d’informations sur l’écriture d’un modèle de contrôle, consultez les modèles de contrôle XAML.

Note

Si vous avez précédemment programmé XAML pour Windows Presentation Foundation (WPF), vous avez peut-être utilisé une extension de balisage x :Type pour renseigner les valeurs XAML qui prennent un System.Type. L’analyseur XAML Windows Runtime ne prend pas en charge x :Type. Au lieu de cela, vous devez faire référence au type par nom sans utiliser d’extension de balisage, et toute conversion de type XAML-à-stockage nécessaire est déjà gérée par le comportement de conversion intégré décrit dans le paragraphe précédent.

Utilisation de TargetType dans le code

La définition de TargetType dans le code est rare. Le système de modèle/style XAML est destiné à être utilisé en chargeant XAML en tant que ressource et en ayant tous les aspects d’un modèle de contrôle à l’avance. Il doit y avoir très peu de scénarios où vous ne connaissez pas les informations sur les contrôles et les modèles jusqu’à l’exécution, où il est nécessaire de définir un TargetType sur un ControlTemplate créé ou référencé dans le code.

L’obtention d’un TargetType dans le code est également rare, mais vous pouvez le faire pour vérifier qu’un ControlTemplate que vous avez chargé à partir de XAML est compatible avec une cible de contrôle donnée que vous avez obtenue à partir de l’arborescence d’exécution.

Tip

Si vous programmez à l’aide d’un langage Microsoft .NET (C#), les projets de type TypeName en tant que System.Type. Lors de la programmation à l’aide de C#, vous utilisez généralement l’opérateur typeof pour obtenir des références à System.Type d’un type basé sur un nom de type en tant que chaîne.

Si vous utilisez C++/WinRT , vous pouvez utiliser la winrt::xaml_typename<T>() fonction d’assistance pour créer un TypeName objet. Pour plus d’informations, consultez le modèle de fonction winrt ::xaml_typename et un exemple de code.

S’applique à

Voir aussi