2012-10-02 9 views
11

Tôi muốn chỉ định một số BitmapImage từ Tài nguyên của tôi.resx đến số Image. Trước đó, tôi đã lưu hình ảnh .png vào Resources.resx. Hình ảnh này hiện được đặt trong "/Resources/logo.png".Gán BitmapImage từ Tài nguyên.resx sang Image.Source?

Sau khi đọc một vài bài viết SO và các bài viết khác tôi có điều này bây giờ:

logoImage.Source = new BitmapImage(new Uri(@"pack://application:,,,/Resources/logo.png")); 

Đáng tiếc là nó không hoạt động. Tôi không biết cách giải quyết vấn đề này.

Tôi đã cố gắng thay thế Pack-URI bằng đường dẫn đầy đủ và nó hoạt động nhưng tôi muốn sử dụng đường dẫn tương đối để sử dụng cùng một nguồn trên các máy khác nhau mà đường dẫn tuyệt đối sẽ không chính xác.

Có ai có thể giúp tôi với điều này không? Cảm ơn bạn trước!

Trả lời

23

Để làm cho Uri đó hoạt động, tệp tin logo.png phải được chứa trong thư mục có tên "Tài nguyên" trong dự án VS của bạn (xem hình ảnh đầu tiên) và Hành động xây dựng phải được đặt thành Tài nguyên (xem hình ảnh thứ hai)).

VS Project

Build Action

thư mục Resources này là hoàn toàn không liên quan đến Resources.resx. Bạn có thể đổi tên nó thành bất cứ thứ gì bạn thích.

+1

cảm ơn! Tôi quên thay đổi BuildAction thành Resource -.- ' – TorbenJ

+0

Cảm ơn !! nhưng tại sao đây không phải là cách mặc định? –