Запустите приложение WPF из другой сборки - PullRequest
2 голосов
/ 29 апреля 2010

Я хочу запустить мое wpf-приложение "A" из другой сборки "B".

Я использую следующий код:

static void main() 
{
  var app = new A.App();
  app.InitializeComponent();
  app.Run();
}

при запуске приложения я получил следующую ошибку:

Cannot convert string '/Resources/icon.gif' in attribute 'Icon' to object of type 'System.Windows.Media.ImageSource'. Cannot locate resource 'resources/icon.gif'.  Error at object 'MainWindow' in markup file 'A;component/shell/shellview.xaml'.

Как я могу перенести информацию об изображениях и ресурсах B в A? Спасибо!

1 Ответ

1 голос
/ 29 апреля 2010

Используете ли вы URI пакета?

Вы можете использовать синтаксис URI пакета для доступа к ресурсам, встроенным в другие сборки. В следующем примере демонстрируется синтаксис URI базового пакета для доступа к встроенным ресурсам в других сборках:

упаковка: // Применение: ,,, /; компонент //

Таким образом, если вы хотите найти файл myPic.bmp в папке myFolder в другой сборке с именем myAssembly, вы должны использовать следующий URI пакета:

Упаковка: // Применение: ,,, / MyAssembly; компонент / MyFolder / myPic.bmp

Как и в случае с другими URI пакета, если встроенный файл не существует в папке, папка в URI не указывается.

Попробуйте использовать что-то вроде этого:

<ResourceDictionary.MergedDictionaries>
<ResourceDictionary
Source="CustomControls.Controls;component\Themes/...."
/>
</ResourceDictionary.MergedDictionaries>
...