2009-12-08 2 views
1

У меня есть ResourceDictionary под названием CustomStyles.xaml внутри моего проекта. Он расположен в подкаталоге RD, поэтому его местоположение равно RD/CustomStyles.xaml.Как я могу получить доступ к моему ResourceDictionary?

Мой вопрос заключается в следующем: У меня есть классовых только файла с именем CustomGroupBox.vb, и в Новом(), я хотел бы получить доступ к ресурсам из ResourceDictionary.

Как это сделать, поскольку у меня нет соответствующего XAML для CustomGroupBox.vb?

P.S. Я хотел бы отметить, что CustomStyles.xaml имеет BuildActionРесурс, а не Содержимое, поэтому оно скомпилировано вместе с проектом, оно НЕ выводится в каталог сборки (\ bin). Поэтому следующее не будет работать ...

Me.Resources.Source = New Uri("RD\CustomStyles.xaml") 

ответ

0

Вы можете просто извлечь ресурс из сборки.

Это сообщение blog покажет вам, как.

1

Похоже, вам нужно использовать Application.Current.Resources, чтобы найти ресурсы, если словарь ресурсов определен на уровне приложения. Пример:

YourControl.Style = CType(Application.Current.Resources("OneOfYourStyles"), Style) 

Edit: Для ресурса в сборке, а не приложение, вы можете использовать пакет URI синтаксис (link) для доступа к ресурсу. Вероятно, это выглядело бы примерно так:

Dim u as Uri = New Uri("/" + Me.GetType().Assembly.GetName().Name + ";RD/CustomStyles.xaml" 
+0

Звучит как someihing, который я сделал один раз, но мне не нужно было «Current», так как я был в самом файле. –

+0

На самом деле, это не сработало для меня. Поскольку мои файлы находятся в сборке, а не в приложении, я получаю следующую ошибку: «Ток» не является членом «MyApplication» – Max

+0

А, я вижу. Я думаю, вы можете использовать синтаксис пакета URI, чтобы получить ресурс из сборки. Отредактировал свой ответ с подробностями. Надеюсь, это поможет! –