2014-04-19 18 views
5

Tôi có Thư viện lớp WPF, chứa Thư mục "Hình ảnh" chứa Hình ảnh. Trong một ứng dụng WPF tôi wont tham khảo các hình ảnh trong thư mục đó sử dụngSử dụng đúng gói: // Định dạng URI

<Image Name="image" Grid.Row="0" Source="pack://application:,,,/ImageService.dll;Component/Images/image.jpg"/> 

Hình ảnh ist đánh dấu là "ressource" và tôi cũng đã thêm nó vào các nguồn lực của dự án thư viện lớp. Sau khi một số tìm kiếm tôi phát hiện ra, rằng tôi phải sao chép các dll vào thư mục exe.

Trong thời gian designtime hình ảnh được hiển thị chính xác. Sau khi khởi chạy tệp thi hành, thuộc tính source của hình ảnh là rỗng. Không có thông báo lỗi và không có gợi ý trong cửa sổ đầu ra.

Dường như định dạng của gói uri không chính xác, do đó thời gian chạy đề cập đến một địa điểm sai. Có cách nào để chỉ định tên lắp ráp liên quan đến thực thi, sử dụng ".... \ AssemblyName.dll" hoặc tuyệt đối cho hệ thống tập tin gốc.

Đáng tiếc là tôi không thể gán các ImageSource qua mã, bởi vì tất cả các nội dung đi qua XAMLWriter - XAMLReader xây dựng từ dll để lắp ráp thực hiện.

Any help is apreciated,

Cảm ơn trước

Trả lời

6

Bạn không cần phải sao chép hình ảnh vào thư mục đầu ra. Hãy chắc chắn rằng bạn đánh dấu Build Action như Resource và thiết lập Copy to Output Directory để false.

Ngoài ra, bạn có thể bỏ qua tên lắp ráp trong gói URI trong trường hợp XAML và hình ảnh nằm trong cùng một cụm. Trong trường hợp họ cư trú trong lắp ráp khác nhau, bạn phải cung cấp cho chỉ tên lắp ráp (loại bỏ dll từ đường dẫn).

<Image Source="pack://application:,,,/ImageService;Component/Images/image.jpg"/> 
+0

Cảm ơn! Loại bỏ dll từ đường dẫn làm việc. Nhưng chỉ khi dll nằm trong cùng thư mục với tệp thi hành. Tôi phải tham khảo hình ảnh trong dll, nằm ở nơi khác. Các rresides lắp ráp thực hiện trong [PROJECTFOLDER] \ ImageConsumer \ bin \ debug lắp ráp chứa hình ảnh nằm trong [PROJECTFOLDER] \ ImageService \ bin \ debug Vì vậy, tôi cần một cái gì đó như' .. \ .. \ .. \ ImageService \ bin \ debug \ ImageService.dll '. –

+0

Tuyệt vời. Rất vui được giúp đỡ .. –

+0

Nhưng chỉ khi dll nằm trong cùng thư mục với tệp thi hành. Tôi phải tham khảo hình ảnh trong dll, nằm ở nơi khác. Các rresides lắp ráp thực hiện trong [PROJECTFOLDER] \ ImageConsumer \ bin \ debug lắp ráp chứa hình ảnh nằm trong [PROJECTFOLDER] \ ImageService \ bin \ debug Vì vậy, tôi cần một cái gì đó như' .. \ .. \ .. \ ImageService \ bin \ debug \ ImageService.dll '. Hoặc một con đường tuyệt đối. Có điều gì đó giống như vậy không? –

Các vấn đề liên quan