मैंने कक्षा लाइब्रेरी असेंबली बनाई जिसमें मैंने कस्टम नियंत्रण बनाए, और मैंने जेनेरिक.एक्सएमएल फ़ाइल में डिफ़ॉल्ट शैलियों को परिभाषित किया।जेनेरिक.एक्सएएमएल से स्टाइल लागू नहीं हैं
ऐसा लगता है कि यह एक आम समस्या है, जब तक कि बहुत से लोग इसके बारे में पोस्ट कर रहे हों। हालांकि मुझे अपने मामले के लिए कोई उपयोगी उत्तर नहीं मिला।
- जेनेरिक.एक्सएएमएल थीम्स फ़ोल्डर में है।
- generix.xaml फ़ाइल बिल्ड एक्शन पृष्ठ पर सेट है।
- ThemeInfo को मेरे AssemblyInfo.cs में ठीक तरह से परिभाषित किया गया है।
अपने परीक्षण आवेदन में, अगर मैं मैन्युअल विधानसभा आवेदन में अपने कस्टम नियंत्रण से generic.xaml फ़ाइल विलय App.xaml इस तरह दायर:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/MyControlsAssembly;component/Themes/generic.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
तो कस्टम नियंत्रण ठीक से कर रहे हैं थीम पर आधारित, लेकिन अगर मैं जेनेरिक.एक्सएमएल मैन्युअल रूप से मर्ज नहीं करता हूं, तो नियंत्रण डिफ़ॉल्ट विंडोज थीम के साथ दिखाई देता है।
क्या आप कृपया मुझे बता सकते हैं कि मैं क्या भूल रहा हूं और/या गलत कर रहा हूं?
अतिरिक्त जानकारी:
मेरे ThemeInfo विधानसभा विशेषता के रूप में पालन परिभाषित किया गया है:
[assembly: ThemeInfo(ResourceDictionaryLocation.SourceAssembly, ResourceDictionaryLocation.SourceAssembly)]
(नोट: परिणाम सिर्फ ThemeInfo विशेषता के लिए मानकों के किसी भी संयोजन के साथ एक ही है)
थीम्स फ़ोल्डर में generic.xaml फ़ाइल के बगल में दो अन्य .xaml फ़ाइलें हैं।
- थीम्स फ़ोल्डर में एक उपफोल्डर है जिसमें स्वयं एक और .xaml फ़ाइल है। निम्न नमूना शैली के साथ अगर आप विषयों फ़ोल्डर के अंदर एक generic.xaml फ़ाइल है
public class MyCustomControl : Control { static MyCustomControl() { DefaultStyleKeyProperty.OverrideMetadata(typeof(MyCustomControl), new FrameworkPropertyMetadata(typeof(MyCustomControl))); } }
फिर,:
Do आपके पास अभी भी आपके कस्टम नियंत्रण पर एक स्थिर निर्माता में DefaultStyleKeyProperty सेट है? – Nogusta
किसी भी भाग्य को यह पता लगाना? मेरे कस्टम नियंत्रण असेंबली के साथ मेरे पास लगभग वही सटीक चीज है। यदि मैं genic.xaml फ़ाइल में App.config में कोई संदर्भ जोड़ता हूं तो नियंत्रण थीम थीम्ड हैं। अगर मैं इसे छोड़ देता हूं तो मुझे कुछ भी नहीं मिलता है। –
क्या यह लिंक लागू होता है? http://social.msdn.microsoft.com/Forums/vstudio/en-US/2e1fb162-e828-4fd9-832f-d2791c1980b4/isnt-genericxaml-supposed-to-loaded- स्वचालित रूप से मुझे एक ही समस्या का सामना करना पड़ रहा है, और मुझे लगता है कि यह मूल कारण –