/ / डब्ल्यूपीएफ - अभिभावक नियंत्रण में परिभाषित शैली के साथ शब्दकोश में परिभाषित मिश्रण शैली - सी #, .net, wpf, xaml

डब्ल्यूपीएफ - संगीत नियंत्रण में परिभाषित शैली के साथ शब्दकोश में परिभाषित मिश्रण शैली - सी #, .net, wpf, xaml

मैं संसाधन शब्दकोश में बटन नियंत्रण के लिए कस्टम देखो परिभाषित करता हूं:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="Button" x:Key="BaseButtonStyle">
<Setter Property="Background" Value="Blue"/>
</Style>
</ResourceDictionary>

फिर मैं खिड़की में शैली को बदलने की कोशिश करता था बटन बटन स्थित थे।

<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Dictionary.xaml"/>
<ResourceDictionary>
<Style TargetType="Button" BasedOn="{StaticResource BaseButtonStyle}">
<Setter Property="Foreground" Value="Red"/>
</Style>
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>

डब्ल्यूपीएफ डिजाइनर में मेरी अपेक्षा है। लाल पाठ के साथ नीला बटन। लेकिन रन-टाइम में दोनों शैलियों को लागू नहीं किया जाता है और बटन में डिफ़ॉल्ट रंग होते हैं। मैं इसे कैसे ठीक करूं?

उत्तर:

उत्तर № 1 के लिए 6

नीचे काम करता है। मैंने बस मर्ज किए गए शब्दकोशों से शैली को स्थानांतरित कर दिया और इसे बाहरी संसाधन डॉट पर रखा।

<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Dictionary.xaml"/>
</ResourceDictionary.MergedDictionaries>

<Style TargetType="Button" BasedOn="{StaticResource BaseButtonStyle}">
<Setter Property="Foreground" Value="Red"/>
</Style>
</ResourceDictionary>
</Window.Resources>

आपके मूल एक्सएएमएल में, मुझे यकीन नहीं है कि क्यों डिजाइनर इसे सही ढंग से प्रस्तुत करने में सक्षम था, जबकि WPF रनटाइम "टी। एमएसडीएन दस्तावेज हालांकि कहते हैं कि:

एक विलय संसाधन संसाधन में नहीं हैमार्कअप में इसके भीतर परिभाषित संसाधन तत्व। इसके बजाए, मर्ज किए गए शब्दकोश एक संसाधन डिक्शनरी है जिसमें कोई मार्कअप बाल तत्व परिभाषित नहीं है (या कोड के माध्यम से कोई तत्व जोड़ा नहीं गया है), लेकिन स्रोत के लिए निर्दिष्ट यूआरआई के साथ।

इसके साथ कुछ करने के लिए हो सकता है।