Могу ли я применить «StaticResource» к элементу во время выполнения? - PullRequest
1 голос
/ 20 ноября 2011

Можно ли применить «StaticResource» к элементу во время выполнения?

Я знаю, что могу использовать «StaticResource» для элемента в файлах xaml.Но я хочу знать, как использовать его из C # (code-behind).

Ответы [ 2 ]

3 голосов
/ 20 ноября 2011

A StaticResource - статический ресурс, обычно определенный в элементе <X.Resources>, для любого элемента или страницы.

В C # вы просто получаете к нему доступ с помощью X.Resources["MyResource"], как и при {StaticResource MyResource}.

2 голосов
/ 20 ноября 2011

Не совсем с тем же значением.StaticResources являются "статическими" в том смысле, что их значение разрешается во время синтаксического анализа Xaml.XamlParser разрешит ресурс, изучив в словаре ресурсов свойства FrameworkElement Resource предка, которые также находятся в тот же xaml , а затем при необходимости Application.Resources.

Если выесли вы знаете, где найти ресурс, который вы хотите назначить, используя код C #, то это так же просто, как в ответе Клауса.Однако, если вы знаете только имя ресурса, но не знаете, в каком словаре он найден, значит, его очень сложно.

Можно написать подпрограмму (вы можете найти такую ​​в SO или в другом месте в Интернете), котораяВы можете использовать его для поиска дерева визуалов, используя VisualTreeHelper, просматривая все свойства Resource.Возможно, вам это сойдет с рук, но имейте в виду, что при этом может быть найдено больше словарей, чем в оригинальной версии Xaml, и вы сможете получить неожиданное значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...