2013-12-03 78 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