2013-12-03 77 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,但主要的是您如何绑定到该资源,即通过StaticResourceDynamicResource

修改这样的 -

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