2010-03-02 13 views
9

मेरा प्रश्न WPF के डिज़ाइन-टाइम समर्थन से संबंधित है। MSDN मैंने पढ़ा है,कस्टम डिज़ाइन-टाइम पर्यावरण बनाना

से WPF डिज़ाइनर एक रूपरेखा और जो आप का उपयोग कर सकते कस्टम adorners, उपकरण, संपत्ति संपादकों, और डिजाइनरों को लागू एक सार्वजनिक एपीआई प्रदान करता है।

लेकिन मुझे मिले उदाहरणों में से अधिकांश बहुमत छोटे हैं, और एक मौजूदा WPF अनुप्रयोग में एक अनुकूलित डिजाइनर के निर्माण से संबंधित बहुत कुछ नहीं बताते हैं। हमने पिछले साल से विंडोज़ फॉर्म से डब्ल्यूपीएफ में अपना आवेदन माइग्रेट कर दिया है, और अगला कदम मौजूदा WinForms पैनल डिज़ाइनर लेना होगा, और इसे WPF में फिर से लिखना होगा।

यह कहने के लिए पर्याप्त है कि यह एक बड़ी परियोजना होगी। लेकिन मुझे यह भी नहीं पता कि कहां से शुरू करना है। मैं सोच रहा हूं कि आप में से किसी के पास एक WPF एप्लिकेशन के लिए एक अनुकूलित डिजाइनर लिखने के समान अनुभव हैं, और यह कैसा था। इससे भी बेहतर, यदि आप WinForms डिजाइनर और WPF डिज़ाइनर के बीच की कार्यक्षमता की तुलना और तुलना कर सकते हैं, या पूर्व से बाद के संक्रमण को समझा सकते हैं, तो यह सहायक होगा। यदि आप किसी भी साधारण उदाहरण के बारे में जानते हैं जो एक अनुकूलित डिजाइन वातावरण (कस्टम नियंत्रण आदि के साथ) का प्रदर्शन करता है जो बेहद फायदेमंद होगा।

सब कुछ, मैं बस सोच रहा हूं कि क्या कई लोगों ने इसे अभी तक किया है, और उनके परिणाम क्या हैं।

EDIT: स्पष्टीकरण के लिए, हाँ, मैं एक डब्ल्यूपीएफ डिजाइनर की मेजबानी के बारे में बात कर रहा हूं। ऐसा प्रतीत होता है कि यह संभव भी नहीं हो सकता है, जो एक बड़ा झटका है। यहां हमारे वर्तमान WinForms डिजाइनर का एक स्क्रीनशॉट है। जैसा कि आप देख सकते हैं, इसका उपयोग अनुकूलित उपयोगकर्ता इंटरफेस बनाने के लिए किया जाता है। आप उस पर कस्टम नियंत्रण खींच सकते हैं और उन्हें डिज़ाइन कर सकते हैं, फिर पैनल को "रन मोड" में डाल दें जिसमें सभी नियंत्रण कार्यात्मक हो जाएं।

हमारे डिजाइनर को लिखने के महीनों में से कम खर्च, क्या यह WPF में संभव होगा? .NET 4.0 और VS2010 के बारे में क्या? क्या वे किसी भी डिजाइनर कार्यक्षमता को जोड़ देंगे?

alt text http://img94.imageshack.us/img94/5378/oldpaneldesigner.png

उत्तर

2

दुर्भाग्य से, वहाँ नहीं एक अच्छा जवाब वास्तव में क्या आप क्या करना चाहते हैं पर निर्भर करता हो सकता है। आपका प्रश्न बिल्कुल ठीक है कि आप जो करने की कोशिश कर रहे हैं उसके बारे में थोड़ा अस्पष्ट है। क्या आप विजुअल स्टूडियो के भीतर मौजूदा डिजाइनर को बस विस्तारित करने की कोशिश कर रहे हैं, या आप अपने स्वयं के अलग-अलग एप्लिकेशन में डब्ल्यूपीएफ डिजाइनर को होस्ट करने की कोशिश कर रहे हैं?

यदि बाद वाला, आप दुर्भाग्य से ऐसा करने में सक्षम नहीं हो सकते हैं। WinForms डिजाइनर वास्तव में .NET Framework (विजुअल स्टूडियो नहीं) का हिस्सा था और इसलिए किसी भी एप्लिकेशन के लिए सुलभ था जो सही होस्टिंग वातावरण प्रदान करता था। a good article on MSDN on how to do that here है, और another one on from DivElements here है।

कई लोगों ने अन्य मंचों में पूछा है कि क्या साइडर (WPF डिजाइनर के लिए कोड नाम) और it seems like the answer is no का उपयोग करना संभव है। आपका एकमात्र संभावित विकल्प Visual Studio Isolated Shell का उपयोग करने के लिए अपने एप्लिकेशन को फिर से डिजाइन करना है। good overview of the options here है।

संपादित करें: ऐसा लगता है कि तीव्र डेवलपमेंट में एक WPF डिज़ाइनर हो सकता है जिसका आप उपयोग कर सकते हैं। मुझे 100% यकीन नहीं है कि अगर उन्होंने अपना खुद का विकास किया है, या यदि उन्हें होस्ट करने का कोई तरीका पता चला है, लेकिन आप उनके स्रोत को देख सकते हैं और खुद के लिए निर्णय ले सकते हैं। आधिकारिक निर्माण में Daily Builds of Sharp Develop पर जाएं (यह नहीं है) और नवीनतम दैनिक निर्माण प्राप्त करें।उस ज़िप फ़ाइल में, नमूने/XamlDesigner निर्देशिका देखें।

+0

जानकारी जोड़ने के लिए मेरे प्रश्न को संपादित किया। हम अपने आवेदन में डिजाइनर की मेजबानी करने की कोशिश कर रहे हैं, और स्पष्ट रूप से पृथक शैल हमारे लिए समाधान नहीं है। मुझे आश्चर्य है कि इस विषय पर माइक्रोसॉफ्ट से समर्थन की कमी है- ऐसा लगता है कि उन्होंने इस परिदृश्य की संभावना को अनदेखा कर दिया है। – Charlie

+0

ऐसा लगता है कि उन्होंने परिदृश्य को नजरअंदाज नहीं किया ... बल्कि वे या तो ए। समय से बाहर निकलते हैं, या बी ने फैसला किया कि इसे करने और उपयोग को नियंत्रित करने का सबसे अच्छा तरीका पृथक शैल के माध्यम से था। हालांकि पृथक शैल को देखो ... यह अत्यधिक अनुकूलन योग्य है। – Nick

+1

एक और संभावित संसाधन जोड़ने के लिए संपादित ... तीव्र विकास ने ऐसा करने का एक तरीका निकाला होगा। मेरे संपादित उत्तर में उनके कोड का एक लिंक है। – Nick

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