在XAML中加载图像非常容易:
<Image Source="Resources/Images/pic.png" />
我想知道有一种简单的方法可以通过编程方式进行吗? 我找到了以下解决方案(花了半天时间):
Uri uri = new Uri("pack://application:,,,/" +
Assembly.GetExecutingAssembly().FullName +
";component/Resources/Images/pic.png", UriKind.Absolute);
BitmapImage img = new BitmapImage(uri);
Image im = new Image();
im.Source = img;
Grid.SetColumn(im, 1);
grid.Children.Add(im);
对我来说,它看起来很丑陋而且很像COM。 它没有.NET FCL(仔细和彻底思考)类库的味道。我们为什么要使用像“pack:...”这样的字符串呢?枚举要好得多(一种Resources.Local)。
我希望有更优雅的方式来完成这项工作。谢谢。
答案 0 :(得分:1)
为什么你不能为“Name”属性赋值“img”并从一行代码中尝试这个?
img.Source = new BitmapImage(new Uri(“pack:// application:,,, / Koala.jpg”));
答案 1 :(得分:0)
优雅的方式是XAML本身。 :-)
....至于背后的代码也可以很优雅......
var img
= new Image()
{
Source =
(new ImageSourceConverter()).ConvertFrom(
"Resources/Images/pic.png") as
ImageSource
};