从另一个程序集运行 WPF 应用程序
Posted
技术标签:
【中文标题】从另一个程序集运行 WPF 应用程序【英文标题】:Run WPF Application from another assembly 【发布时间】: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? 谢谢!
【问题讨论】:
你最后用的是哪一个? 【参考方案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"
【讨论】:
以上是关于从另一个程序集运行 WPF 应用程序的主要内容,如果未能解决你的问题,请参考以下文章