2009-12-08 3 views
3

Voici le scénario:DynamicResource ne fonctionne pas, mais StaticResource le fait?

1) Ouvrez Visual Studio 2008, créer un nouveau projet ...

2) Sélectionnez WPF Control Library personnalisée comme type de projet

3) Ouvrez le generic.xaml dictionnaire de ressources situé dans le dossier Thèmes

4) Ajouter une brosse simple comme:

< SolidColorBrush x: Key = "BackgroundBrush" Co Lor = "Jaune" />

5) Changer la propriété en arrière-plan du contrôle Borer nichait de

background = "{TemplateBinding Contexte}"

à

Contexte = "{DynamicResource BackgroundBrush}"

Maintenant, lorsque vous compilez et utilisez ce contrôle dans un projet, le backg le rond ne sera pas jaune. Mais, si vous modifiez la propriété d'arrière-plan un StaticResource en tant que telle

background = "{StaticResource BackgroundBrush}"

... cela va fonctionner. Pourquoi est-ce? Pourquoi StaticResource fonctionne-t-il mais pas DynamicResource ???

+0

ayant le même problème ici. Expression Blend crée DynamicResource par défaut, ce qui provoque un fonctionnement incorrect du programme. C'est très étrange! Avez-vous trouvé quelque chose depuis que vous avez posté la question? –

Répondre

0

Si vous êtes en train de coder en dur le pinceau dans le fichier Xaml, cela me semble plutôt statique. L'entrée MSDN pour DynamicResource indique que lorsque vous souhaitez utiliser l'utilisation, résolvez le nom de la ressource lors de l'exécution (c'est-à-dire le nom est stocké dans une autre ressource), où vous connaissez le nom lors de la compilation.

ressemble beaucoup à un pointeur vers un pointeur à un pointeur de C.

+0

Je ne comprends pas votre réponse. Il n'y a pas de codage fixe, c'est la façon dont les ressources sont définies. Rien sur les pointeurs ici. – Max

Questions connexes