【问题标题】:Run WPF Application from another assembly从另一个程序集运行 WPF 应用程序
【发布时间】:2010-04-29 08:08:15
【问题描述】:

我想从另一个程序集“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? 谢谢!

【问题讨论】:

  • 你最后用的是哪一个?

标签: wpf resources appdomain


【解决方案1】:

您是否在使用 Pack URI?

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

pack://application:,,,/;组件//

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

Pack://application:,,,/myAssembly;component/myFolder/myPic.bmp

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

尝试使用类似的东西:

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

【讨论】:

  • 以这种方式我必须修改我的 wpf 应用程序“A”中的所有资源引用。相反,如果有一种方法可以修改 A 使​​用的相对搜索路径,那就太好了
【解决方案2】:

今天我遇到了同样的问题,我解决了这个问题:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-19
    • 1970-01-01
    相关资源
    最近更新 更多