Загрузить изображение в 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: ..."? Перечисления намного лучше (своего рода Ресурсы. Местные).
Я надеюсь, что есть более элегантный способ сделать эту работу. Спасибо.