2014-10-15 5 views
2

В коде позади (filename.xaml.cs файла), я могу успешно получить доступ к статическим ресурсам, как это:Как получить доступ к стилю вне кода за файлом (xaml.cs)?

TextBlock elm = new TextBlock(); 
elm.Style = (Style)this.Resources["myStyle"]; 

где Styles.xaml добавляется filename.xaml нравится следующим образом:

<Page.Resources> 
    <ResourceDictionary Source="resources/Styles.xaml" /> 
</Page.Resources> 

Однако this.Resources["myStyle"] не работает в файле .cs, который не связан ни с одним файлом .xaml. Как получить доступ к Style.xaml в этом случае?

ответ

3

Вы должны использовать FindResource.

Либо используя this как FrameworkElement:

elm.Style = (Style)this.FindResource("myStyle"); 

Или на Application:

elm.Style = (Style)Application.Current.FindResource("myStyle"); 
+0

'this.FindResource()' doens't работать. Он работает в codebehind (где 'this.Resources []' также работает), но я хочу использовать его .cs-файл, который не связан ни с одним .xaml-файлом. – totoro

+0

@green: Как насчет приложения? –

+0

Вы имеете в виду добавление '' в App.xaml? Примечание. Я уточнил вопрос для разъяснения. но с этим текущим контекстом недоступен 'this.FindResource()'. – totoro

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