как использовать DynamicResource в коде позади? - PullRequest
6 голосов
/ 17 ноября 2009

Я бы хотел иметь возможность программно установить свойство динамического ресурса.

myControl.Property = this.Resource[key]

не является допустимым ответом, поскольку при замене ресурса с ключом «ключ» свойство не обновляется автоматически.

Спасибо за ваш ответ,

Ответы [ 2 ]

13 голосов
/ 17 ноября 2009

Статический ресурс не будет обновляться независимо от того, делаете ли вы это в коде или в XAML. Для этого вам понадобится динамический ресурс.

В XAML:

<Grid x:Name="grid" Background="{DynamicResource Brush}"/>

В коде:

grid.SetResourceReference(Grid.BackgroundProperty, "Brush");
1 голос
/ 17 ноября 2009

Имейте в виду, что DynamicResource недоступен в Silverlight; это только в WPF (Silverlight имеет только StaticResource).

Поскольку вы отметили свой вопрос как Silverlight, так и WPF, я подозреваю, что вы, возможно, ищете решение, которое работает в обоих случаях. Если это так, вы, вероятно, захотите использовать привязку данных вместо ресурсов, поскольку вам необходимо обновить свойство в ответ на изменения.

...