2011-03-20 4 views
8

तो डब्ल्यूपीएफ में मेरे संदेश बॉक्स के बटन ओएस द्वारा थीमबद्ध नहीं हैं।
मैंने this method भी कोशिश की और यह काम नहीं किया।डब्ल्यूपीएफ संदेश बॉक्स बटन ओएस थीम्ड नहीं हैं

मेरे पास एक मैनिफेस्ट है, मैं विंडोज 7 अल्टीमेट x86 और .NET Framework 4 क्लाइंट प्रोफाइल के तहत चल रहा हूं।


संपादित करें: यह अब काम करता है।

+0

मैंने आपके लिए अपना जवाब अपडेट कर दिया है। – Prisoner

+2

यह काम करने के लिए आपने क्या किया? जब मैं निर्माण मैं निम्नलिखित त्रुटि मिलती है: त्रुटि फ़ाइल 'Microsoft.Windows.Common- नियंत्रण, संस्करण = 6.0.0.0, संस्कृति = *, PublicKeyToken = 6595b64144ccf1df, ProcessorArchitecture = *, प्रकार = Win32' नहीं मिल सका मैं विंडोज 7 x64 –

+0

@AdeA विजुअल स्टूडियो से, प्रोजेक्ट प्रॉपर्टीज में जाएं -> सुरक्षा -> "क्लिकऑन सुरक्षा सेटिंग्स सक्षम करें" के चेकबॉक्स को अनचेक करें यह मेरे लिए हल समस्या है। –

उत्तर

9

आपके द्वारा किए गए परिवर्तन सहेजे गए हैं लेकिन आप उन्हें VS में डिबगिंग के दौरान नहीं देख सकते हैं। इसे ठीक करने के लिए, अपनी प्रोजेक्ट पर राइट क्लिक करें और "Properties" पर क्लिक करें और फिर "डीबग" पर जाएं। "विजुअल स्टूडियो होस्टिंग प्रक्रिया सक्षम करें" नामक पृष्ठ के निचले हिस्से में एक चेकबॉक्स है - इसे अन-टिक करें। यह अनुशंसा की जाती है कि आप इस परिवर्तन के बाद दृश्य स्टूडियो को पुनरारंभ करें।

वैकल्पिक रूप से, आप डिबगिंग (CTRL + F5) के बिना बस निर्माण कर सकते हैं।

+0

कृपया विस्तृत करें ... – Vercas

+0

@Vercas अद्यतन उत्तर, विंडोज़ में बूट करना पड़ा। – Prisoner

+0

यह बहुत अजीब है, मेरे लिए ठीक काम किया। क्या आप बस 'MessageBox.Show() 'को कॉल कर रहे हैं? – Prisoner

3

आप http://elegantcode.com/2010/08/05/extended-wpf-toolkit-new-messagebox-control/ उपयोग करने का प्रयास कर सकते हैं - http://wpftoolkit.codeplex.com/

अधिक प्रलेखन भी भीतर http://wpftoolkit.codeplex.com/wikipage?title=MessageBox&referringTitle=Home

+0

यह वास्तव में समस्या को ठीक नहीं करता है, बस इसे बदल देता है .. – Prisoner

+0

सहमत और समझा - बस समस्या को हल करने में मदद करने की कोशिश कर रहा है :) – Stuart

+0

मैंने नहीं कहा कि मैं विकल्पों को मना कर देता हूं। – Vercas

17

यह WPF में एक अजीब गड़बड़ है पर पोस्ट कोड, यह दृश्य शैलियों सक्रिय करने के लिए पाइपलाइन याद आ रही है। संदेहजनक है क्योंकि यह करना मुश्किल नहीं है।

वर्कअराउंड आपके प्रोग्राम में एम्बेड किए गए मैनिफेस्ट को संशोधित करता है। अपनी EXE प्रोजेक्ट का चयन करें, फिर प्रोजेक्ट + नया आइटम जोड़ें, सामान्य, एप्लिकेशन मैनिफेस्ट फ़ाइल का चयन करें। आपको डिफॉल्ट मैनिफेस्ट मिलता है जो एम्बेडेड हो जाता है, <assemblyIdentity> और <trustInfo> तत्वों को नोट करें। में बीच पेस्ट करें:

<dependency> 
    <dependentAssembly> 
     <assemblyIdentity 
      type="win32" 
      name="Microsoft.Windows.Common-Controls" 
      version="6.0.0.0" 
      processorArchitecture="*" 
      publicKeyToken="6595b64144ccf1df" 
      language="*" 
     /> 
    </dependentAssembly> 
    </dependency> 

संदेश बॉक्स अब ऑपरेटिंग सिस्टम का विजुअल शैली होगा, एयरो Vista पर और ऊपर डिफ़ॉल्ट रूप से चमक बंद करें बटन के साथ देखो।

यदि आप इसे विजुअल स्टूडियो 2010 में करते हैं तो यह मैनिफेस्ट प्रविष्टि पहले से मौजूद है लेकिन टिप्पणी की गई है। आप इसे फ़ाइल के नीचे पाएंगे। बस टिप्पणी, <dependency> से पहले <!-- और हटाने --></dependency>

के बाद खबरदार है कि इस प्रकट सक्षम नहीं है जब आप डिबगर और विजुअल स्टूडियो होस्टिंग प्रक्रिया को सक्षम करने पर चलाते हैं। यह आपकी बिल्ड निर्देशिका, yourapp.vshost.exe में एक अलग .exe फ़ाइल है। प्रोजेक्ट + प्रॉपर्टीज, डीबग टैब, स्क्रॉल डाउन, "विजुअल स्टूडियो होस्टिंग प्रक्रिया को सक्षम करें" अनचेक करें। सुरक्षा से संबंधित कुछ साइड इफेक्ट्स हैं, वास्तव में ऐसा करने में बहुत कुछ नहीं है क्योंकि आपके उपयोगकर्ता को कभी भी यह समस्या नहीं होगी।

+0

मैंने यही किया और यह काम नहीं किया ... – Vercas

+0

मेरे लिए और कई अन्य प्रोग्रामर के लिए काम किया। आपने क्या गलत किया? अपने प्रश्न में अपने मैनिफेस्ट की सामग्री पोस्ट करें। –

+0

ठीक है। मैं एक फाइल भी पोस्ट करूंगा ... – Vercas