Я создал небольшой вспомогательный класс с одним методом для обратного поиска, который вам необходим.
public static class ResourceHelper
{
static public string FindNameFromResource(ResourceDictionary dictionary, object resourceItem)
{
foreach (object key in dictionary.Keys)
{
if (dictionary[key] == resourceItem)
{
return key.ToString();
}
}
return null;
}
}
Вы можете позвонить, используя следующий
string name = ResourceHelper.FindNameFromResource(this.Resources, defaultStyle);
Каждый FrameworkElement
имеет свой собственный словарь .Resources
, использование «this» предполагает, что вы находитесь в правильном месте для определения MyTestStyle. При необходимости вы можете добавить больше методов к статическому классу для рекурсивного обхода всех словарей в окне (приложение?)