2013-12-03 6 views
0

Давайте предположим, что у нас есть следующий словарь:Изменение ресурсов во время выполнения

<ResourceDictionary xmlns:sys="clr-namespace:System;assembly=mscorlib"> 
    <sys:String x:Key="Test">Ala ma kota</sys:String> 
</ResourceDictionary> 

Этот словарь слиты где-то в пользовательском элементе управления:

<UserControl.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="MyDictionary.xaml" /> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</UserControl.Resources> 

Как я могу полностью изменить значение ресурс «Тест» во время выполнения приложения из кода позади?

+0

Привязать к испытанию. :) –

+0

Я забыл упомянуть, что я хочу сделать это из кода. Я знаю, что я могу вручную создать привязку, но я подозреваю, что есть еще один, более простой способ :) – Spook

+0

Если вы просите изменить эту строку из кода сзади, взгляните на мой ответ :) –

ответ

1

Если вы хотите изменить ресурс из кода за то просто получить доступ к ресурсу как словарь и изменить требуемое значение :)

Как это:

this.Resource["myThickness"] = new Thickness(2); 

Это было бы его :)

1

Вы можете изменить resource from code-behind, но главное, как вы привязываетесь к этому ресурсу, то есть через StaticResource или DynamicResource.

Modify, как это -

Resources["Test"] = "Ala ma kota updated"; 

XAML (После обновления ресурсов из кода позади, текстовое значение будет отличаться для двух подходов) -

<TextBlock Text="{StaticResource Test}"/> // Will be Ala ma kota 
<TextBlock Text="{DynamicResource Test}"/> // Will be Ala ma kota updated 
Смежные вопросы