हैं, मेरे पास कई संसाधन शब्दकोश XAML फ़ाइलों के साथ एक लाइब्रेरी, CommonLibraryWpfThemes है। मेरी थीम्स/जेनेरिक.एक्सएमएल फ़ाइल में एक संसाधन डिक्शनरी है। मर्ज किए गए डिक्शनरी घोषणा जो सभी अन्य फ़ाइलों को एक साथ विलय करती है।एक संसाधन शब्दकोश का संदर्भ देने में समस्या जिसमें मर्ज किए गए शब्दकोश
Generic.xaml
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary
Source="/CommonLibraryWpfThemes;component/ResourceDictionaries/BrushDictionary.xaml" />
<ResourceDictionary
Source="/CommonLibraryWpfThemes;component/ResourceDictionaries/TextBlockDictionary.xaml" />
<ResourceDictionary
Source="/CommonLibraryWpfThemes;component/ResourceDictionaries/LabelDictionary.xaml" />
<ResourceDictionary
Source="/CommonLibraryWpfThemes;component/ResourceDictionaries/ButtonDictionary.xaml" />
<ResourceDictionary
Source="/CommonLibraryWpfThemes;component/ResourceDictionaries/WindowDictionary.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
अपने आवेदन परियोजना में, मैं CommonLibraryWpfThemes के लिए एक संदर्भ है, और मुझे स्पष्ट रूप से मेरी App.xaml फ़ाइल में Generic.xml के संदर्भ हैं।
App.xaml - विफल रहता है
<Application
x:Class="MyApp.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Application.Resources>
<ResourceDictionary
Source="/CommonLibraryWpfThemes;component/Themes/Generic.xaml" />
</Application.Resources>
</Application>
यह काम नहीं करता। अगर मैं App.xaml में Generic.xaml की सामग्री को जगह
System.Windows.Markup.XamlParseException occurred
Message="Cannot find resource named '{_fadedOrangeBrush}'. Resource names are case sensitive. Error at object 'System.Windows.Setter' in markup file 'CommonLibraryWpfThemes;component/ResourceDictionaries/WindowDictionary.xaml' Line 18 Position 13."
Source="PresentationFramework"
LineNumber=18
LinePosition=13
सीधे, सब कुछ ठीक काम करता है: जब मैं अपने अनुप्रयोग चलाने मैं निम्नलिखित त्रुटि मिलती है
App.xaml - सफल होता है
<Application
x:Class="MyApp.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary
Source="/CommonLibraryWpfThemes;component/ResourceDictionaries/BrushDictionary.xaml" />
<ResourceDictionary
Source="/CommonLibraryWpfThemes;component/ResourceDictionaries/TextBlockDictionary.xaml" />
<ResourceDictionary
Source="/CommonLibraryWpfThemes;component/ResourceDictionaries/LabelDictionary.xaml" />
<ResourceDictionary
Source="/CommonLibraryWpfThemes;component/ResourceDictionaries/ButtonDictionary.xaml" />
<ResourceDictionary
Source="/CommonLibraryWpfThemes;component/ResourceDictionaries/WindowDictionary.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
शायद मैं गलत तरीके से इस बारे में जा रहा हूँ। मेरा लक्ष्य सभी व्यक्तिगत फ़ाइलों को सूचीबद्ध करने के बिना कई अनुप्रयोगों से मेरे सभी थीम संसाधनों को संदर्भित करना आसान बनाना है। क्या ऐसा करने का कोई अनुशंसित तरीका है? (नोट: मैं एकाधिक विषयों के बीच स्विच करने की कोशिश नहीं कर रहा हूं - मेरे पास सिर्फ एक थीम है।)
बोनस के रूप में, यह अच्छा होगा अगर कोई मुझे बता सके कि बाहरी पुस्तकालय में संसाधनों को संदर्भित करने के बिना कैसे विजुअल स्टूडियो में डिजाइनर।
धन्यवाद।
संपादित करें:
मैं एक ResourceDictionary.MergedDictionary तत्व में ResourceDictionary लपेटकर कोशिश की, लेकिन वह भी काम नहीं किया (मैं एक ही त्रुटि मिलती है):
<Application
x:Class="MyApp.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary
Source="/CommonLibraryWpfThemes;component/Themes/Generic.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
मैं यहां एक छोटा सा उपहार शुरू करूंगा। कुछ रेसॉर्स डिक्शनरी को थीम में जोड़ना (और इसे ऐप.एक्सएएमएल में लोड करना) एक सामान्य पर्याप्त परिदृश्य लगता है ... – Jens