2009-12-08 3 views
3

Вот сценарий:DynamicResource не работает, но StaticResource делает?

1) Откройте Visual Studio 2008, создайте новый проект ...

2) Выберите WPF пользовательских элементов управления библиотеки в качестве типа проекта

3) Откройте Generic.xaml словарь ресурс, расположенный в папке Themes

4) Добавить простую кисть, такие как:

< SolidColorBrush х: Key = "BackgroundBrush" Co лор = "Yellow" />

5) Изменение фона свойство вложенного контроля Borer из

фон = "{TemplateBinding фона}"

в

Background = "{DynamicResource BackgroundBrush}"

Теперь, когда вы компилируете и используете этот элемент управления в любом проекте, раунд НЕ будет желтым. НО, если вы изменить фоновое свойство быть StaticResource как таковой

фон = "{StaticResource BackgroundBrush}"

... он будет работать. Почему это? Почему работает StaticResource, но не DynamicResource ???

+0

с той же проблемой здесь. Expression Blend создает DynamicResource по умолчанию, что вызвано неправильной работой программы. Это очень странно! Вы нашли что-нибудь с тех пор, как вы разместили вопрос? –

ответ

0

Если вы жестко кодируете кисть в файле Xaml, это звучит довольно статично для меня.

Запись MSDN для DynamicResource говорит, что это необходимо, если вы хотите, чтобы использование разрешало имя ресурса во время выполнения (то есть имя хранилось на другом ресурсе), где вы знаете имя во время компиляции.

Звуки очень похож на указатель стиха указатель к а-указателя от С.

+0

Я не понимаю вашего ответа. Не существует жесткого кодирования, это то, как определяются ресурсы. Здесь ничего нет. – Max

 Смежные вопросы

  • Нет связанных вопросов^_^