1

假设我们有以下字典:

<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>

如何在应用程序运行时从后面的代码中完全更改资源“测试”的值?

4

2 回答 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
于 2013-12-03T19:06:01.260 回答
1

如果您希望从后面的代码中更改资源,那么只需像字典一样访问资源并更改所需的值:)

像这样:

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

就是这样:)

于 2013-12-03T18:45:43.030 回答