web-dev-qa-db-fra.com

Comment extraire un modèle de contrôle par défaut dans Visual Studio?

Je me demande comment je peux extraire (obtenir une copie) du modèle par défaut d'un contrôle donné à l'aide de Visual Studio. Je sais que cela peut être fait avec Expression Blend (clic droit sur un contrôle, "Modifier le modèle" -> "Modifier une copie ...") qui copie ensuite le modèle de contrôle par défaut dans mon Xaml. Mais cela peut-il être fait avec Visual Studio?

49
foreyez

Mise à jour 2015 avec instructions claires

Dans Visual Studio 2013, vous pouvez obtenir la valeur par défaut ControlTemplate d'un contrôle en quelques étapes simples.

  1. Dans le concepteur WPF, sélectionnez le contrôle approprié ou placez le curseur de la souris sur le contrôle approprié dans le XAML.

  2. Presse F4 pour ouvrir la fenêtre de propriétés.

  3. Ouvrez la catégorie Divers pour rechercher la propriété Modèle, ou tapez Modèle dans le champ de recherche situé en haut de la fenêtre.

  4. Cliquez sur le petit carré à droite du champ Modèle et sélectionnez l'option Convertir en nouvelle ressource ...:

enter image description here

  1. Dans la boîte de dialogue contextuelle, nommez le nouveau ControlTemplate à ajouter et choisissez l'emplacement de définition souhaité:

enter image description here

  1. Cliquez sur le bouton OK.
74
Sheridan

Dans Visual studio, cliquez avec le bouton droit sur le contrôle, choisissez Propriétés,

Dans la fenêtre des propriétés, recherchez la propriété de modèle et cliquez dessus avec le bouton droit de la souris.

Cela créera une copie du modèle dans le code XAML sur lequel vous pourrez travailler.

32
Royi Mindel

Juste pour mettre à jour cette question, dans VS 11, le concepteur XAML vous permet de le faire comme pour Expression Blend.

7
erodewald

Pour autant que je sache, ce n'est pas possible. Cependant, vous pouvez utiliser Show Me The Template pour afficher le modèle par défaut pour un contrôle donné.

2
Adi Lester

Une chose à garder à l'esprit: si vous avez déjà défini un style quelque part qui cible le contrôle donné, toutes les options décrites ci-dessus seront désactivées. J'ai eu le peu de code suivant dans mon fichier App.xaml:

<Application.Resources>
    <Style TargetType="Button">
        <Setter Property="IsTabStop" Value="False"/>
    </Style>
</Application.Resources>

J'essayais de comprendre pourquoi les options "modifier une copie ..." et "convertir en nouvelle ressource ..." décrites dans les autres réponses étaient désactivées pour mon bouton (défini dans un fichier complètement différent). ). J'ai commenté le code de style ci-dessus pour Button et les deux options ne sont plus désactivées. Morale de l'histoire: VS ne générera pas de style contenant une copie de modèle pour vous s'il existe déjà un style pour cet élément dans votre code.