У меня есть личное приложение-ролик, которое загружает изображения во время выполнения, и я хочу отображать изображения вместо вставленного изображения-заполнителя (Если изображение недоступно)
Код, который я нашел, который должен сделать трюк, ничего не меняет
У меня есть этот WPF контроль изображения
<Image Name="MovieImage" Height="Auto" Width="Auto" Grid.Column="2" Grid.Row="0" Grid.ColumnSpan="2" Grid.RowSpan="4" Source="NoPhotoAvailable.jpg" />
и тогда у меня есть
public void MovieList_SelectionChanged(Movie SelectedMovie)
{
this.SelectedMovie = SelectedMovie;
BitmapImage bi = new BitmapImage();
bi.BeginInit();
bi.UriSource = new Uri("/155.jpg", UriKind.RelativeOrAbsolute);
bi.EndInit();
Console.WriteLine(bi.UriSource.ToString());
MWV.MovieImage.Source = bi;
}
Где MWV, где управление изображением находится на
Изображение помещается в папку приложений и называется 155.jpg, но ничего не отображается вообще
Я нашел много примеров, которые предполагают, что это должно быть довольно близко к решению, но, по-видимому, не правильно
Решение:
public void MovieList_SelectionChanged(Movie SelectedMovie)
{
if (MovieCount == 0)
{
Console.WriteLine(MovieCount.ToString());
MWV.MovieImage.Source = new BitmapImage(new Uri("NoPhotoAvailable.jpg", UriKind.RelativeOrAbsolute));
}
else
{
this.SelectedMovie = SelectedMovie;
BitmapImage bi = new BitmapImage();
bi.BeginInit();
string path = Path.Combine(Path.GetDirectoryName(typeof(MainWindowController).Assembly.Location), this.SelectedMovie.TMDBID.ToString() + ".jpg");
bi.UriSource = new Uri(path, UriKind.RelativeOrAbsolute);
bi.EndInit();
Console.WriteLine(bi.UriSource.ToString());
MWV.MovieImage.Source = bi;
}
}