从另一个程序集运行WPF应用程序

时间:2010-04-29 08:08:15

标签: wpf resources appdomain

我想从另一个程序集“B”运行我的wpf应用程序“A”。

我使用以下代码:

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? 谢谢!

2 个答案:

答案 0 :(得分:1)

您使用的是Pack URI吗?

您可以使用pack URI语法访问嵌入在其他程序集中的资源。以下示例演示了用于访问其他程序集中的嵌入资源的基本包URI语法:

包://应用:,,, /;组分//

因此,如果您想在名为myAssembly的另一个程序集中的myFolder文件夹中找到名为myPic.bmp的文件,您将使用以下包URI:

包://应用:,,, / MyAssembly程序;组件/ MyFolder文件/ myPic.bmp

与其他包URI一样,如果文件夹中不存在嵌入文件,则URI中将省略该文件夹。

尝试使用类似的东西:

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

答案 1 :(得分:0)

今天,我遇到了同样的问题,我通过以下方法解决了这个问题:

Source="../../Resources/name.jpg"