试图理解Assembly,Uri和所有这些事情,并且有一些我不理解的东西,希望我可以一次性问他们。
我的解决方案包含两个"汇编"如果我这样理解正确的话。
我希望 FetchResources 获取该图片并将其显示在我的MainWindow上。
当我在xaml中这样做时,它没有问题。
但是在后面的代码中我使用相同的Uri,但由于某种原因它不会显示图像。
var uri = new Uri("pack://application,,,/WPF_UserControll_Test;component/Images/71805972.jpg", UriKind.Absolute);
BitmapImage bmi = new BitmapImage();
bmi.UriSource = uri;
testimage.Source = bmi;
我不确定我是否正确理解装配,也不完全了解Uri。我在WPF中读过微软打包URI ,但我不清楚它是如何工作的。
为什么我可以通过XAML而不是后面的代码到达图像?
答案 0 :(得分:1)
“申请”后你缺少一个冒号(:)。试试这个:
testimage.Source = new BitmapImage(new Uri("pack://application:,,,/WPF_UserControll_Test;component/Images/71805972.jpg", UriKind.Absolute));
如果您不使用接受Uri
的构造函数重载,则应在设置BeginInit()
属性之前和之后调用EndInit()
和UriSource
方法:
BitmapImage bmi = new BitmapImage();
bmi.BeginInit();
bmi.UriSource = new Uri("pack://application:,,,/WPF_UserControll_Test;component/Images/71805972.jpg", UriKind.Absolute);
bmi.EndInit();
testimage.Source = bmi;
答案 1 :(得分:0)
试试这个:
以下示例显示了XAML资源文件的pack URI,该文件位于引用的特定于版本的程序集的项目文件夹的根文件夹中。
包://应用:,,, / ReferencedAssembly; V1.0.0.1;组件/ ResourceFile.xaml