在遇到与您相同的问题并进行了一些阅读之后,我发现了解决方案-Pack URIs。
我在代码中做了以下工作:
Image finalImage = new Image();finalImage.Width = 80;...BitmapImage logo = new BitmapImage();logo.BeginInit();logo.UriSource = new Uri("pack://application:,,,/AssemblyName;component/Resources/logo.png");logo.EndInit();...finalImage.Source = logo;
或更短一点,通过使用另一个BitmapImage构造函数:
finalImage.Source = new BitmapImage( new Uri("pack://application:,,,/AssemblyName;component/Resources/logo.png"));
URI分为以下部分:
- 权威:
application:///
路径:编译为引用程序集的资源文件的名称。路径必须符合以下格式:
AssemblyShortName[;Version][;PublicKey];component/Path
- AssemblyShortName:所引用程序集的简称。
- ; Version [可选]:包含资源文件的引用程序集的版本。当加载两个或多个具有相同短名称的引用程序集时,将使用此方法。
- ; PublicKey [可选]:用于对引用的程序集进行签名的公共密钥。当加载两个或多个具有相同短名称的引用程序集时,将使用此方法。
- ; component:指定要引用的程序集是从本地程序集引用的。
- / Path:资源文件的名称,包括其路径,相对于引用程序集的项目文件夹的根目录。
之后的三个斜杠
application:必须用逗号替换:
注意:包URI的授权组件是指向包的嵌入式URI,并且必须符合RFC2396。此外,“ /”字符必须替换为“,”字符和保留字符(例如“%”)和“?”
必须逃脱。有关详细信息,请参见OPC。
当然,请确保将图像上的构建 *** 作设置为
Resource。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)