Tôi đã tạo một thư viện lớp học trong đó tôi đã tạo các điều khiển tùy chỉnh và tôi đã định nghĩa các kiểu mặc định trong tệp generic.xaml.Kiểu từ generic.xaml không được áp dụng
Có vẻ như đây là một vấn đề khá phổ biến, miễn là có nhiều người đăng bài về nó. Tuy nhiên tôi không thể tìm thấy bất kỳ câu trả lời hữu ích cho trường hợp của tôi.
- generic.xaml nằm trong thư mục Chủ đề.
- tệp generix.xaml Build Action được đặt thành Trang.
- ThemeInfo được định nghĩa đúng trong AssemblyInfo.cs của tôi.
Trong ứng dụng thử nghiệm của tôi, nếu tôi tự sáp nhập các tập tin generic.xaml từ điều khiển tùy chỉnh của tôi lắp ráp vào ứng dụng nộp App.xaml như thế này:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/MyControlsAssembly;component/Themes/generic.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
sau đó các điều khiển tùy chỉnh là đúng theo chủ đề, nhưng nếu tôi không hợp nhất thủ công generic.xaml, các điều khiển sẽ xuất hiện với chủ đề Windows mặc định.
Bạn có thể cho tôi biết tôi đang quên và/hoặc làm sai?
Thông tin thêm:
My ThemeInfo lắp ráp thuộc tính được định nghĩa như sau:
[assembly: ThemeInfo(ResourceDictionaryLocation.SourceAssembly, ResourceDictionaryLocation.SourceAssembly)]
(Lưu ý: kết quả chỉ là giống với bất kỳ sự kết hợp của các thông số cho thuộc tính ThemeInfo)
Có hai tệp .xaml khác bên cạnh tệp generic.xaml trong thư mục Chủ đề.
- Có thư mục con trong thư mục Chủ đề tự chứa một tệp .xaml khác.
Đỗ bạn vẫn có bộ DefaultStyleKeyProperty trong một hàm tạo tĩnh trên các điều khiển tùy chỉnh của bạn? – Nogusta
Bất kỳ may mắn nào tìm ra điều này? Tôi đã gần như cùng một điều chính xác xảy ra với lắp ráp điều khiển tùy chỉnh của tôi. Nếu tôi thêm một tham chiếu trong App.config vào tệp generic.xaml thì các điều khiển theo chủ đề. Nếu tôi bỏ điều này ra thì tôi chẳng nhận được gì cả. –
Liên kết này có áp dụng không? http://social.msdn.microsoft.com/Forums/vstudio/en-US/2e1fb162-e828-4fd9-832f-d2791c1980b4/isnt-genericxaml-supposed-to-loaded-automatically Tôi đã đối mặt với cùng một vấn đề, và tôi nghĩ rằng đây là nguyên nhân gốc rễ –