2010-04-15 20 views
8

मैंने विजुअल स्टूडियो 2010 एक्सप्रेस (सी #) में एक डब्ल्यूपीएफ एप्लीकेशन बनाया और एप्लिकेशन को नीचे दिए गए पाठ को जोड़ा। App.xaml में स्रोत। मैं डिजाइनर में खिड़की पर लागू शैली देखता हूं, लेकिन जब मैं एप्लिकेशन चलाता हूं, तो खिड़की की पृष्ठभूमि सफेद होती है।डब्ल्यूपीएफ विंडो स्टाइल रनटाइम पर काम नहीं कर रहा है

मैकबुक प्रो पर बूटकैम्प पर विंडोज एक्सपी में चल रहा है यदि यह एक कारक है।

अग्रिम धन्यवाद,

ईसाई

<Style TargetType="{x:Type Window}"> 
     <Setter Property="Background"> 
      <Setter.Value> 
       <LinearGradientBrush StartPoint="0,0" EndPoint="0,1"> 
        <GradientStop Offset="0" Color="WhiteSmoke" /> 
        <GradientStop Offset="1" Color="Silver" /> 
       </LinearGradientBrush> 
      </Setter.Value> 
     </Setter> 

     <Setter Property="Padding" Value="20" /> 
    </Style> 

उत्तर

10

माइक्रोसॉफ्ट ने समस्या को दोहराया है और ऐसा लगता है कि यह WPF 4.0 में एक बग हो सकता है।

https://connect.microsoft.com/VisualStudio/feedback/details/555322/global-wpf-styles-are-not-shown-when-using-2-levels-of-references

अनुसंधान व्यक्ति जो बग प्रस्तुत करके किया के बाद, मैं अपने व्यक्तिगत XAML संसाधन फ़ाइलों कि मर्ज किए गए संसाधन शब्दकोश में शामिल किए गए हैं के सभी लिया और कटौती और एक एकल UberStyles में शैली पाठ पेस्ट करें। xaml फ़ाइल। मैंने मर्ज किए गए शब्दकोशों के सभी उपयोगों से परहेज किया।

इस समस्या को हल किया और मेरे WPF 3.5 एप्लिकेशन से मेरी शैली की जानकारी मेरे डब्ल्यूपीएफ 4.0 एप्लिकेशन के खिलाफ वापस आई।

मेरी आंखों के लिए यह WPF 4.0 में एक स्पष्ट बग है - मुझे बिल्कुल यकीन नहीं है कि आप इसे एक विशेषता के रूप में कैसे डालेंगे और व्यवहार अनियंत्रित है। मैं पूरी तरह से डब्ल्यूपीएफ 4.0 मंच के लिए इसके प्रभावों से थोड़ा चिंतित हूं। आपने सोचा होगा कि यह विजुअल स्टूडियो 2010 रिलीज के परीक्षण में पकड़ा गया होगा!

वैसे भी, उम्मीद है कि इससे मदद मिलती है। मुझे इस बग से पागल कर दिया गया है क्योंकि हम दो हफ्ते पहले वीएस -2010 में अपग्रेड कर चुके थे।

0

निम्नलिखित भर में गलती:

How to set default WPF Window Style in app.xaml?

जवाब यह है कि एक शैली व्युत्पन्न प्रकार के लिए लागू नहीं किया जाएगा।

+1

मुझे यकीन नहीं है कि यह जवाब है। नीचे मेरी पोस्ट देखें ... ऐसा लगता है कि यह वास्तव में एक बग है। – JasonD

0

मुझे एक ही समस्या है। हमने प्रत्येक स्टैंडअर्ट नियंत्रण के लिए कस्टम शैलियों के साथ एक लाइब्रेरी विकसित की है, यह डीनेटर और रनटाइम पर नेट 3.5 के तहत ठीक काम करता है। आज हमने अपनी परियोजनाओं को .NET4 पर स्विच करने का निर्णय लिया है (wpf 4 में कई नए स्वादिष्ट feautures हैं)। उसके बाद क्रम में इस तरह रनटाइम पर काम नहीं कर रहा है, लेकिन डिजाइनर पर आवेदन करने वाले सभी शैलियों: मुख्य काम कर ठीक:

<Style TargetType={x:Type Button}> 
     <Setter Property="FontSize" Value="14"/> 
</Style> 

setted एक्स के साथ शैलियाँ। लेकिन हमें थीम के लिए डिफ़ॉल्ट शैली सेट करने की आवश्यकता है, इसे प्रत्येक नियंत्रण के लिए सेट न करें।

+0

क्या आप मानक नियंत्रण का उपयोग कर रहे हैं या आप मानक नियंत्रण से subclass करते हैं? यदि आप उनसे प्राप्त करते हैं तो नीचे मेरा जवाब आपको अंतर्दृष्टि देगा। अन्यथा मुझे यकीन नहीं है क्योंकि मुझे नहीं पता कि WPF अनुप्रयोगों को 3.5 से 4 तक अपग्रेड करने में क्या शामिल है। –

संबंधित मुद्दे