2009-08-14 6 views
1

Ich versuche, eine StaticResource in einem ControlTemplate für ein benutzerdefiniertes Objekt zu verwenden, und jedes Mal, wenn das Objekt gerendert wird, stürzt die Anwendung ab. Wie Sie im folgenden Code sehen können, definiere ich sowohl die Vorlage als auch die Ressource in App.XAML. Ich habe ein wenig gesucht, um zu sehen, ob/warum das nicht erlaubt ist, aber bisher hatte ich kein Glück.StaticResource in 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> 

Wenn jemand erklären könnte, warum dies nicht erlaubt ist oder was ich falsch mache (oder, am besten noch eine bessere Möglichkeit, kundenspezifische Thematisierung in Silverlight zu tun), würde ich es sehr zu schätzen.

Edit: Ich fühle mich wie ich sollte angeben, dass ich meist nur daran interessiert bin, das Farbschema an einem Ort zu setzen; Der Rest des Themas muss sich nicht so sehr ändern.

+0

Sind Sie sicher, dass Sie eine Control erstellen? Ich denke, Sie müssen für DataTemplate gehen und Ihre StaticResource-Bindung scheint in Ordnung zu sein. –

+0

Sorry, ich lasse das so lange hängen ... habe den Kommentar nicht gesehen. Ich hatte noch nie von der DataTemplate-Klasse gehört, also habe ich ein wenig recherchiert und ich denke, ich möchte ein ControlTemplate basierend auf dem, was ich hier gefunden habe: http://www.vistax64.com/avalon/928-what-difference-between -datatemplate-controlltemplate.html – oltman

Antwort

2

Statt Farbe, können Sie versuchen, eine

SolidColorBrush mit

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

+0

Wow, ich bin erstaunt, dass ich das nicht verstanden habe. Silverlight muss wirklich an seinen Fehlermeldungen arbeiten ... Seit ich diese Frage gestellt habe, habe ich TemplateBindings entdeckt, die mehr mit dem übereinstimmen, was ich machen möchte. Danke! – oltman

+0

LOL kein Problem! Es ist mir passiert, aber jetzt weiß ich, fast alles braucht Pinsel. – Paully