В Xamarin, если я объединю два каталога ресурсов, могу ли я по-прежнему вносить изменения в каждый и отображать их при поиске ресурсов?

Вот что я имею в виду. Если у меня есть эти два класса ресурсов:

public class Theme1 : ResourceDictionary
{
    protected Theme1()
    {
        Add(nameof(IconColor), "#111111");
        Add(nameof(PageBackgroundColor), "#111111");
    }
    public Color IconColor { get; }
    public Color PageBackgroundColor { get; 
}

public class Theme2 : ResourceDictionary
{
    protected Theme2()
    {
        Add(nameof(IconColorA), "#222222");
        Add(nameof(PageBackgroundColorA), "#222222");
    }
    public Color IconColorA { get; }
    public Color PageBackgroundColorA { get; }
}

Если я затем объединю их так:

Application.Current.Resources.MergedDictionaries.Add(new Theme1());
Application.Current.Resources.MergedDictionaries.Add(new Theme2());

Если после слияния я теперь изменю значение одного из ключей в Theme1, отразится ли это при поиске ресурса?


person Richard A    schedule 01.03.2021    source источник
comment
Не уверен, что вы имеете в виду, но я думаю, это зависит от того, как вы их потребляете как StaticResource или DynamicResource.   -  person Cfun    schedule 01.03.2021


Ответы (1)


Если вы хотите изменить значение MergedDictionaries, вы можете присвоить значение напрямую.

App.Current.Resources["IconColor"] = Color.Blue;
person Cherry Bu - MSFT    schedule 02.03.2021