दिलचस्प पोस्ट
व्युत्पन्न टेम्पलेट क्लास का आधार टेम्प्लेट क्लास 'पहचानकर्ताओं तक पहुंच क्यों नहीं है? IOS 6 में पोर्ट्रेट अभिविन्यास के लिए एक UIViewController को कैसे लागू करें अंतिम काम के लिए सी लूप अनुकूलन सहायता jqgrid संपादन एक्शनआईकंस कॉलम इवेंट्स ब्राउज़र का आकार बदलते समय jqGrid का आकार बदलें? एक्शनबार पाठ रंग एएसपी.नेट एमवीसी में टेम्पटडाटा बनाम सत्र का उपयोग कब किया जाए फ़ंक्शन कॉल परिणाम के शब्दों को परिवर्तित करने वाले पैनेथेसिस अद्यतन और हटाने के लिए HTTP स्थिति कोड? शुरुआती के लिए मर्कुरियल: द डेफिनिटिकल प्रैक्टिकल गाइड चेक करें कि चेकबॉक्स को jQuery के साथ चेक किया गया है या नहीं UIDevice अद्वितीय पहचानकर्ता अप्रतिबंधित – अब क्या करना है? MySQL में उन सभी विशिष्ट कॉलम नामों के साथ तालिकाओं को कैसे खोजें? SQL सर्वर के लिए MySQL LIMIT खंड समकक्ष किसी प्रदीप्ति द्वारा स्ट्रीम को सीमित करें

WinForms ऐप में कस्टम शीर्षकबार / क्रोम

मुझे लगभग निश्चित है कि मुझे इस प्रश्न का उत्तर पता है, लेकिन मैं उम्मीद कर रहा हूं कि मैंने कुछ अनदेखी की है।

ऐसा लगता है कि कुछ अनुप्रयोगों में विस्टा एयरो के पास लगने और उनके कैप्शन सलाखों और बटनों पर महसूस होता है, भले ही वे Windows XP पर चलते हों। (Google क्रोम और विंडोज लाइव फोटो गैलरी उदाहरण के तौर पर दिमाग में आते हैं।) मुझे पता है कि इसे WinForms से पूरा करने का एक तरीका एक सीमावर्ती फॉर्म बनाना होगा और कैप्शन बार / बटन अपने आप में बनाएगा, फिर WndProc को ओवरराइड करना सुनिश्चित करना, आकार बदलना , और बटन क्लिक वे करते हैं जो करना चाहिए (मैं विशेष पर स्पष्ट नहीं है, लेकिन संभवतः दस्तावेज़ को पढ़ने के लिए एक दिन के लिए इसे बंद कर सकता हूं।) मैं उत्सुक हूं अगर कोई अलग, आसान तरीका है कि मैं हूं देख सकते हैं। शायद कुछ एपीआई कॉल या विंडो शैलियों की अनदेखी की है?

मेरा विश्वास है कि Google ने क्रोम के साथ रोल-अपनी-खुद-खिड़की दृष्टिकोण का उपयोग करके मेरे लिए इसका उत्तर दिया है किसी और की नई जानकारी के मामले में मैं एक और दिन के लिए खुला प्रश्न छोड़ दूँगा, लेकिन मेरा मानना ​​है कि मैंने अपने प्रश्न का उत्तर दिया है।

वेब के समाधान से एकत्रित समाधान "WinForms ऐप में कस्टम शीर्षकबार / क्रोम"

एप्लिकेशन के लिए अपने खुद के कस्टम "क्रोम" का उपयोग करने का पूरा कोड नमूना वाला एक लेख यहां है:

http://geekswithblogs.net/kobush/articles/CustomBorderForms3.aspx

यह कुछ बहुत अच्छा सामान की तरह दिखता है इसमें श्रृंखला के कुल 3 लेख हैं, और यह बहुत अच्छा चलता है, और विस्टा में भी!

एक्सपी पर इसे प्राप्त करने के लिए Google क्रोम विस्टा एसडीके का इस्तेमाल नहीं कर रहा है। यदि आप src\chrome\browser\views\frame में झांकते हैं तो सिस्टम की क्षमताओं के आधार पर ब्राउज़र फ़्रेम को परिभाषित करने के लिए कई फ़ाइलें हैं XP पर, ऐसा लगता है कि OpaqueFrame का उपयोग किया जाता है; लाइन 1 कहने के लिए यह है:

 // OpaqueFrame // // OpaqueFrame is a CustomFrameWindow subclass that in conjunction with // OpaqueNonClientView provides the window frame on Windows XP and on Windows // Vista when DWM desktop compositing is disabled. The window title and // borders are provided with bitmaps. 

ऐसा लगता है कि यह फ्रेम बटन को खींचने के लिए संसाधनों का उपयोग कर रहा है src\chrome\app\theme

तो यह मेरी उम्मीदों की तरह दिखता है कि XP ​​पर विस्टा थियोिंग को सक्षम करने के लिए कोई सस्ता तरीका है। ऐसा करने का एकमात्र तरीका मैन्युअल रूप से आपकी विंडो के गैर-क्लाइंट क्षेत्र को खींचने का है। मेरा मानना है कि ऐसा कुछ संभवतः सही ट्रैक है, क्योंकि यह विंडोज़ गैर-क्लाइंट सामान को चलाना और खिड़की के आकार बदलने जैसे संभालता है।

जब तक कोई भी XP पर विस्टा थिसिंग को जादुई रूप से सक्षम करने के लिए कोई विधि खोज सकता है, तो यह सवाल का उत्तर है, लेकिन मैं स्पष्ट रूप से अपना स्वयं का पोस्ट जवाब के रूप में चिह्नित नहीं कर सकता।

ओवेन, मैं एक्सपी पर क्रोम का उपयोग कर रहा हूं और मुझे क्रोम खिड़की पर "विस्टा एयरो" ग्लास थीम दिखाई नहीं दे रही है। मैं इसे नीला नीला दिखता हूं।

यदि यह नियंत्रण और खिड़कियों की सलाखों को कस्टम करना है जो आप चाहते हैं, जिसे पूरा किया जा सकता है WinForms के लिए एक उत्कृष्ट, नि: शुल्क UI टूलकिट है जो कि ऐसा करता है: KryptonToolkit

@ जोनाथन हॉलैंड: क्या ऐसा कुछ है जो नेट से किया जा सकता है?

हां, DllImport का उपयोग करते हुए यहां एक अच्छा ब्लॉग पोस्ट है

Google क्रोम XP पर ग्लास देखने के लिए Windows Vista SDK का उपयोग करता है। आप द्वारा इसे यहां पर डाउनलोड किया जा सकता है:

http://www.microsoft.com/downloads/details.aspx?FamilyID=4377f86d-c913-4b5c-b87e-ef72e5b4e065&displaylang=en

इस का उपयोग करते हुए, आपको एक्सपी में ग्लास इफेक्ट प्राप्त करने के लिए निम्न DLL के लैंडिंग को सक्षम करने की आवश्यकता है:

  • uxtheme.dll
  • dwmapi.dl

नहीं, मुझे डर है, ऐसा करने का कोई अन्य आसान तरीका नहीं है।

आप सही रास्ते पर हैं। आपको एक कस्टम विनफ़ॉर्म बनाना होगा और फिर इस उदाहरण में सचित्र के रूप में आगे बढ़ना होगा।