Tôi có một ứng dụng Windows Forms cần lưu trữ một điều khiển WPF khi chạy. Tôi có lưu trữ cơ bản và tương tác hoàn chỉnh (sử dụng một điều khiển ElementHost) và mọi thứ hoạt động tốt cho đến khi tôi cố gắng làm điều gì đó yêu cầu điều khiển WPF sử dụng một số từ điển tài nguyên tùy chỉnh được xác định. (Việc kiểm soát WPF và tất cả của nó là từ điển tài nguyên được tất cả các định nghĩa trong thư viện cùng WPF kiểm soát DLL.)Tải/Sử dụng Từ điển Tài nguyên từ một điều khiển WPF được lưu trữ trên máy chủ WinForms
Ngay sau khi điều đó xảy ra, tôi nhận được một loạt các lỗi mà trông như thế này:
System.Windows.ResourceDictionary Warning: 9 : Resource not found; ResourceKey='DocumentHeaderInterestStyle'
Tôi đã tìm thấy một liên kết reference (xuất hiện đã chết do lưu trữ, thiscó thể là cùng một bài viết ban đầu được tham chiếu). nói về điều này, nhưng có vẻ như bài viết đang tiếp cận nhiều hơn từ phía WPF, nhưng tôi không thực sự muốn thay đổi điều khiển WPF vì mọi thứ hoạt động trong một ứng dụng WPF độc lập. Nếu cách duy nhất để thực hiện điều này là thực hiện thay đổi ở phía WPF, tôi có thể thực hiện những thay đổi đó (Tôi không chịu trách nhiệm đối với thư viện điều khiển WPF nhưng người đó cũng làm việc cho cùng một công ty để nó không phải là một vấn đề khác hơn là nhận được thời gian của mình để thực hiện các thay đổi.) Nhưng tôi hy vọng cho một cái gì đó tôi có thể làm ở phía WinForms để có được điều này làm việc.
Thư viện kiểm soát WPF có một tập tin từ điển tài nguyên có tên là "Default.xaml" quy định tại dự án với các thuộc tính sau:
Build Action: Trang Copy to Output Directory: Đừng sao chép Tuỳ chỉnh Tool: MSBuild : Biên dịch
các độc lập WPF ứng dụng có các mục sau đây trong nó App.xaml file:
<ResourceDictionary x:Uid="ResourceDictionary_1">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary x:Uid="ResourceDictionary_2" Source="/SmartClient.Infrastructure;component/Themes\Default.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
nó có vẻ như thư viện kiểm soát nên đã biết cách t o lấy tài nguyên của nó. Sử dụng Resources.MergedDictionaries.Add() có vẻ như nó sẽ hoạt động, nhưng tôi lấy ví dụ của từ điển hiện tại ở đâu?
đâu sẽ là "chìa khóa" và "giá trị" đến từ các cuộc gọi đến Thêm? –
Điều đó có ý nghĩa hơn, nhưng không nên sử dụng các từ điển? Tôi đã cập nhật câu hỏi của tôi với một số thông tin thêm về cách thức WPF bên của những thứ trông. –
Bạn đang rung chuyển, nó làm việc kỳ diệu. Bạn thực sự đã tiết kiệm thời gian của tôi. –