2014-02-12 3 views
2

Я хочу установить источник изображения в изображение из ресурса. У меня есть этот XAML, который работает отлично:Как установить источник изображения из ресурса в wpf в MVVM

<Image Source="/MyApplicationName;component/Resources/SplashScreen/InternetPlaceHolder.jpg" Height="577" Width="700" /> 

Я хочу, чтобы изменить его таким образом, что загружается изображение в коде. Поэтому я написал этот код:

<Image Height="577" Width="700" x:Name="Image"/> 


    MyImage = new Image(); 
    BitmapImage logo = new BitmapImage(); 
    logo.BeginInit(); 
    logo.UriSource = new Uri("pack://application:,,,/MyApplicationName;component/Resources/SplashScreen/InternetPlaceHolder.jpg"); 
    logo.EndInit(); 
    MyImage.Source = logo; 

Но это не работает.

Я проверил, и логотип не инициализирован из изображения ресурса. по-видимому, что-то не так с ури. Я проверил его с документацией, которую я нашел, и кажется, что ее формат правильный.

Мой вопрос: что не так с URI?

+0

Только мысль: вы пробовали, используя перегруженную 'Uri' конструктор, который принимает' UriKind'? Вы можете попробовать указать «UriKind.Absolute». Не уверен, что это будет иметь значение, но стоит попробовать. –

+0

Спасибо, проверено, но это не работает! – mans

+1

'logo.UriSource = new Uri ("/MyApplicationName; component/Resources/SplashScreen/InternetPlaceHolder.jpg ", UriKind.RelativeOrAbsolute);' - Попробуйте это ... – Sankarann

ответ

0

Во-первых, вы должны установить свойство изображения Build Action в Resource. Тогда попробуйте следующий код:

ImagePath = string.Format("{0}/{1}/{2}",AppDomain.CurrentDomain.BaseDirectory,"Resources/SplashScreen","InternetPlaceHolder.jpg"); 

XAML:

<Image Source="{Binding ImagePath}" Height="577" Width="700" /> 
Смежные вопросы