2

J'essaie d'apprendre Silverlight ici, en créant un modèle de contrôle personnalisé, mais VS2010 refuse de reconnaître le type ControlTemplate dans le code de balisage, même si j'ai référencé le System.Windows et System.Windows.Controls assemblys (ce qui est par défaut lorsque vous basez le projet sur le modèle d'application Silverlight standard). J'essaie de recréer this seen on another SO stack.VS2010 ne peut pas trouver le type ControlTemplate même si System.Windows est référencé

J'ai essayé de mettre ce code directement dans un fichier (c.-à-ImageButton.xaml) et rien d'autre:

<ControlTemplate x:Key="ImageButtonTemplate"> 
    <Image Source="{TemplateBinding Content}" /> 
</ControlTemplate> 
+0

ajouter System.Windows.Controls de refernce – Malcolm

+0

Y a-t-il aussi;) –

+0

Avez-vous référencé les bonnes versions des assemblages? –

Répondre

0

Il est un peu difficile de répondre à cette question sans savoir autoritairement un peu plus de contexte, comme quel type de fichier vous placez dedans, et quelle est l'erreur exacte de Visual Studio. Je vous imagine que vous obtenez une erreur comme:

The type 'ControlTemplate' was not found. Verify that you are not missing an assembly reference and that all referenced assemblies have been built.

ou peut-être:

Property 'Content' does not support values of type 'ControlTemplate'

Elles sont causées en plaçant le modèle au mauvais endroit - par exemple, si vous créez un nouveau UserControl (via Ajouter -> Nouvel élément) et supprimez le contenu du fichier et collez-le dans votre code, puis vous obtiendrez cette erreur, car le xaml n'a aucune référence à ControlTemplate.

Le meilleur endroit pour mettre votre ControlTemplate est quelque part réutilisable, comme une nouvelle « ressource de dictionnaire » (encore une fois, ajouter via Ajouter -> Nouvel élément -> Resource Silverlight Dictionnaire) et puis placez votre code à l'intérieur le <ResourceDictionary ...></ResourceDictionary> Mots clés.

Si vous voulez le placer dans un UserControl (la source de la deuxième erreur), alors vous ne devez ajouter à la section Resources de ce contrôle, par exemple:

<UserControl.Resources> 
    <ControlTemplate x:Key="ImageButtonTemplate"> 
     <Image Source="{TemplateBinding Content}" /> 
    </ControlTemplate> 
</UserControl.Resources> 
Questions connexes