2012-11-20 1 views
1

XAML:Получить х: Имя или х: Ключ от кисти

<ResourceDictionary> 
    <SolidColorBrush x:Name="MyBrush1" x:Key="MyBrush1" Color="Red" /> 
</ResourceDictionary> 

C#:

brush = userControl.FindResource("MyBrush1") 

Как я могу извлечь х: Имя или х: Ключ от кисти? Возможно ли это, чтобы получить их, выполнив следующие действия:

brush.Name 

или

brush.Key 
+1

Вы можете сканировать Res ourceDictionary ищет ваш объект, а затем дает вам ключ. См. Здесь для некоторого кода: .... http://stackoverflow.com/questions/538750/can-i-get-the-key-of-a-style-in-code-behind-wpf –

ответ

4
public static class ResourceHelper 
{ 
    public static string FindNameFromResource(ResourceDictionary dictionary, 
      object resourceItem) 
    { 
     return (dictionary.Contains(resourceItem)) ? 
       dictionary[resourceItem].ToString() : 
       string.Empty; 
    } 
} 

вспомогательный класс с одним методом, чтобы сделать обратный поиск

Вы можете назвать это так :

string name = ResourceHelper.FindNameFromResource(this.Resources, defaultStyle); 
+0

Если ресурс ссылается к любому ** DynamicResource **, то эта функция не работает. Кроме того, если ресурс становится клонированным **, клонированный не может быть найден, и эта функция не будет выбрана. В противном случае функция должна работать нормально. – dongx

Смежные вопросы