WPF

2010-01-25 10 views
5

में एक अच्छा जीयूआई बनाना मुझे डेस्कटॉप सीएडी एप्लिकेशन बनाना होगा जो अनिवार्य रूप से एक अच्छा आधुनिक जीयूआई होना चाहिए। मैं एक WPF अनुप्रयोग बनाने की सोच रहा हूं ताकि मेरे पास एक समृद्ध उपयोगकर्ता इंटरफ़ेस हो। क्या कोई मुझे डब्ल्यूपीएफ में एक अच्छी तरह से डिज़ाइन किया गया डेस्कटॉप एप्लिकेशन जीयूआई फ्रेमवर्क सुझा सकता है? मुझे इस वीडियो http://channel9.msdn.com/posts/Psychlist1972/Pete-at-PDC09-WPF-3d-Awesomeness-with-Tor-and-Robby/ में कुछ अच्छा जीयूआई मिला लेकिन उनके आवेदन में उपयोग किए गए नियंत्रणों के बारे में सुनिश्चित नहीं है। क्या किसी के पास कोई विचार है कि वे वहां किस नियंत्रण का उपयोग करते थे?WPF

क्या WPF में कोई संपत्ति ग्रिड नियंत्रण है? मैंने विंडोज फॉर्म में ग्रिड का उपयोग करने की कोशिश की। मेरी आवश्यकता के अनुसार इस ग्रिड को अनुकूलित करना मुश्किल लगता है। यह वस्तु के सभी गुण सीधे आधार वर्ग से सबसे व्युत्पन्न तक दिखाता है।

उत्तर

5

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

उस ने कहा, कुछ बहुत अच्छे तृतीय पक्ष नियंत्रण हैं। सभी सामान्य संदिग्धों में डब्ल्यूपीएफ के लिए नियंत्रण पुस्तकालय हैं: Telerik, Infragistics, ComponentOne, Actipro, Devxpress बस कुछ नाम देने के लिए। विशेष रूप से, Actipro's Property Grid बहुत अच्छा है। एक open source one भी है जिसका मैंने मूल्यांकन नहीं किया है, इसलिए बात नहीं कर सकता। नियंत्रण के लिए पूर्व-संकलित शैलियों को लागू करके WPF को "थीम्ड" भी किया जा सकता है। यहां पाए गए उदाहरण थीम हैं: http://wpfthemes.codeplex.com/

अंत में, डब्ल्यूपीएफ की ताकतें पूरी तरह से तब तक पूरी तरह से एहसास नहीं होती हैं जब तक कि आप डब्ल्यूपीएफ द्वारा खींचे और प्रबंधित किए गए दृश्य को अलग करने के तरीके को न सीखें, जिसे दृश्य मॉडल कहा जाता है। जोश स्मिथ के पास इस पैटर्न के बारे में एक अच्छा लेख है, जिसे मॉडल-व्यू-व्यू मॉडेल के नाम से जाना जाता है, यहां: http://msdn.microsoft.com/en-us/magazine/dd419663.aspx

4

मुझे लगता है कि माइक्रोसॉफ्ट ने डब्ल्यूपीएफ में एक संपत्ति ग्रिड नियंत्रण सहित कोई बिंदु नहीं देखा क्योंकि यह स्वयं को बनाने के लिए बहुत छोटा है, और यदि उन्होंने नियंत्रण बनाया है तो शैली बनाना कठिन होगा।

अपनी खुद की PropertyGrid बनाने के लिए, बस एक <ItemsTemplate> एक <DockPanel> युक्त एक <TextBlock> संपत्ति नाम के लिए छोड़ दिया करने के लिए डॉक और मूल्य संपादक के लिए एक <ContentPresenter>, तो Category संपत्ति पर समूहीकरण सक्षम है के साथ एक <ListBox> का उपयोग करें।

एकमात्र कोड जिसे आपको लिखना है वह वह कोड है जो वस्तु पर प्रतिबिंबित करता है और गुणों की सूची बनाता है।

यहाँ आप का प्रयोग करेंगे क्या का मोटा अनुमान है:

DataContext = 
    from pi in object.GetType().GetProperties() 
    select new PropertyGridRow 
    { 
    Name = pi.Name, 

    Category = (
     from attrib in pi.GetCustomAttributes(false).OfType<CategoryAttribute>() 
     select attrib.Category 
    ).FirstOrDefault() ?? "None", 

    Description = (
     from attrib in pi.GetCustomAttributes(false).OfType<DescriptionAttribute>() 
     select attrib.Description 
    ).FirstOrDefault(), 

    Editor = CreateEditor(pi), 

    Object = object, 
    }; 

CreateEditor विधि बस वास्तविक संपत्ति के मूल्य के लिए एक बाध्यकारी के साथ संपत्ति के लिए एक उपयुक्त संपादक का निर्माण होगा।

<DataTemplate> 
    <DockPanel> 
    <TextBlock Text="{Binding PropertyName}" Width="200" /> 
    <ContentPresenter DataContext="{Binding Object}" Content="{Binding Editor}" /> 
    </DockPanel> 
</DataTemplate> 

मैं आपको जानकारी के बाकी हिस्सों में भरने दूँगा:

XAML में, <ListBox.ItemTemplate> कुछ इस तरह होगा।

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