2009-08-14 4 views
1

J'essaie d'utiliser un StaticResource dans un ControlTemplate pour un objet personnalisé, et à chaque fois que cet objet est rendu, l'application se bloque. Comme vous pouvez le voir dans le code ci-dessous, je définis à la fois le modèle et la ressource dans App.XAML. J'ai fait un peu de recherche pour voir si/pourquoi cela n'est pas autorisé, mais je n'ai pas eu de chance jusqu'ici.StaticResource dans Silverlight ControlTemplate?

<Color x:Key="PersonBackground">#FF003B00</Color> 

    <ControlTemplate x:Key="PersonTemplate" TargetType="this:Person"> 
     <Border Background="{StaticResource PersonBackground}" BorderBrush="White" 
       BorderThickness="2" CornerRadius="10" MinHeight="70" MinWidth="120"> 
    ... 
    </ControlTemplate> 

Si quelqu'un pourrait expliquer pourquoi ce n'est pas permis ou ce que je fais mal (ou, mieux encore, une meilleure façon de faire thématisation personnalisé dans Silverlight), je serais très heureux. Editer: Je pense que je devrais préciser que je suis surtout intéressé par le fait de pouvoir définir le schéma de couleurs en un seul endroit; le reste du thème n'aura pas besoin de changer autant.

+0

Êtes-vous sûr de vouloir créer un ControlTemplate? Je pense que vous devez opter pour DataTemplate et que votre liaison StaticResource semble correcte. –

+0

Désolé je laisse cela pendre si longtemps ... n'a pas vu le commentaire. Je n'avais jamais entendu parler de la classe DataTemplate, donc j'ai fait un peu de recherche et je pense que je veux un ControlTemplate basé sur ce que j'ai trouvé ici: http://www.vistax64.com/avalon/928-what-difference-between -datatemplate-controltemplate.html – oltman

Répondre

2

au lieu de la couleur, vous pouvez essayer d'utiliser un SolidColorBrush

< SolidColorBrush x: Key = "PersonBackground" color = "# FF003B00"/>

+0

Wow, je suis étonné que je n'ai pas attrapé ça. Silverlight a vraiment besoin de travailler sur ses messages d'erreur ... Depuis que j'ai posé cette question, j'ai découvert TemplateBindings, qui est plus en ligne avec ce que je veux faire. Merci! – oltman

+0

LOL pas de problème! Cela m'est arrivé mais maintenant je sais que presque tout a besoin d'être brossé. – Paully

Questions connexes