2008-11-27 13 views
10

यह प्रश्न सामान्य नुकसान, "गॉचाचा", या WPF अनुप्रयोगों के विकास के दौरान डिज़ाइन समस्याओं के समाधान की एक सूची प्रदान करना चाहता है। इसमें उचित डिज़ाइन-पैटर्न भी शामिल हो सकते हैं जब तक कि कोई स्पष्टीकरण न हो कि यह सर्वोत्तम क्यों काम करता है। समस्या के प्रकार के आधार पर प्रतिक्रियाओं को ऊपर या नीचे वोट दिया जाना चाहिए। यहां नियम हैं:डब्ल्यूपीएफ विकास में सबसे आम गलतियों क्या हैं?

  • प्रति पोस्ट एक प्रतिक्रिया। यह स्पष्ट रूप से उच्चतम रैंकिंग के सबसे आम मुद्दों को स्पष्ट करेगा।
  • एसओ भूमि में पहले से कहीं से संबंधित किसी संबंधित पोस्ट या समाधान को लिंक प्रदान करना सबसे अच्छा होगा।
+0

यह कई देवताओं के लिए एक अमूल्य संसाधन हो सकता है क्योंकि अधिक से अधिक दुकानें WPF को देखना शुरू कर देती हैं। –

उत्तर

14

समस्या: प्रमुख मुद्दा मैं अब तक देखा है कि लोगों के मन में WinForm यूआई मॉडल के साथ WPF में कोडिंग शुरू है।

समाधान: WPF नहीं WinForms/MFC/Win32 तो सभी यूआई पक्ष मान्यताओं को भूल जाओ है और आप का इस्तेमाल किया और सीखा है मानदंडों जबकि Windows के विकास पिछले 20 वर्षों के लिए आधारित यूआई।

इस प्लेटफ़ॉर्म के पीछे मूल विचारों को समझना बहुत महत्वपूर्ण है, यह लिंक- Major UI Development Breakthroughs in the new WPF platform WPF का गहराई से दृश्य देगा। जो निम्नलिखित बिंदुओं को सूचीबद्ध करता है। हाइलाइट किए गए लोग इस मंच की मेरी पसंदीदा विशेषताएं हैं।

  1. उन्नत ग्राफिक्स
  2. आरेखण ऑब्जेक्ट मॉडल
  3. रिच आवेदन पाठ
  4. अनुकूलनीय यूआई लेआउट
  5. लचीला सामग्री मॉडल
  6. Lookless नियंत्रित करता है
  7. डेटा संचालित यूआई
  8. अनुरूप शैलियाँ
  9. ट्रिगर
  10. घोषणात्मक प्रोग्रामिंग
+0

आपको वास्तव में और अधिक विशिष्ट होना चाहिए। जब तक आप अपने मतलब का अधिक विस्तृत व्याख्या प्रदान नहीं करते हैं, तब तक मैं मतदान कर रहा हूं। आपको कुछ एम-वी-वीएम सामानों के संदर्भ प्रदान करना चाहिए। – Micah

+0

वह बिल्कुल सही है, और यह एक बात है जिसे आपको डब्ल्यूपीएफ –

+0

सेकेंडेड मीका को समझने के लिए प्राप्त करना है, मुझे कौन सी मान्यताओं को छोड़ना चाहिए? – Jimmy

1

तत्वों पर ContentControls (विंडोज, UserControls, आदि ..) में परिभाषित गुण और गुणों के बीच ठीक से काम करने के लिए बाध्य हो रही डेटा जो नियंत्रण सामग्री बनाते हैं। उदाहरण के लिए। आप कितनी बार "PropertyDefinedInMyWindow" यह कभी नहीं TextBlock में परावर्तित हो जाती है अद्यतन कोई फर्क नहीं पड़ता: चलो कहते हैं मैं एक खिड़की है कि इस तरह दिखता है दो:

<Window x:Name="MyWindow"....> 
    <TextBlock Text="{Binding Path=PropertyDefinedInMyWindow}" /> 
</Window> 

समस्या। SO Question

समाधान: आपको विंडो के डेटा कॉन्टेक्स्ट को सेट करने की आवश्यकता है या बाध्यकारी बताएं कि संपत्ति किस तत्व पर रहती है।SO Solution

2

समस्या/प्रश्न:SO Question

मैं कैसे उपयोगकर्ताओं के लिए मेरी उपयोगकर्ता नियंत्रण में एक घटक के एक DependencyProperty प्रदर्शित करूं? वहाँ बहुत सारे कैसे नई निर्भरता संपत्ति बनाने और बाध्यकारी द्वारा एक सामान्य संपत्ति का पर्दाफाश करने का उदाहरण के , लेकिन कैसे FrameworkElement.ActualWidthProperty की तरह केवल पढ़ने के लिए संपत्ति का पर्दाफाश करने पर कोई भी कर रहे हैं।

समाधान: आप अपने उपयोगकर्ता नियंत्रण में एक नया केवल पढ़ने के लिए DependencyProperty का पर्दाफाश, और यह अद्यतन जब भी आपके निहित "घटक" के ActualWidthProperty अद्यतन हो जाता है की जरूरत है। ऐसा होने वाले परिवर्तनों के बारे में अधिसूचित होने के लिए इसके लिए DependecyPropertyDescriptor का उपयोग करना आवश्यक है। SO Solution

3

समस्या: एम-वी-वीएम डिजाइन पैटर्न का उपयोग करके, मैं विचारों को तुरंत कहां से कर सकता हूं? क्या यह ViewModel में होता है? SO Question 1, SO Question 2

समाधान: WPF विकास सबसे प्रभावी जब एम वी के वी एम पद्धति का उपयोग कर के रूप में इस तरह के एम वी सी के रूप में अन्य सामान्य प्रतिरूप करने का विरोध किया है। प्रवृत्ति को व्यूमोडेल का इलाज करना उतना ही है जितना आप नियंत्रक करेंगे जो खोलने और विचारों के साथ-साथ मॉडल बनाने के लिए भी संभाल लेंगे। एम-वी-वीएम में यह मामला नहीं है। दृश्य एकमात्र स्थान हैं जहां विचारों को बनाया जाना चाहिए। ViewModels को देखने के कुछ भी नहीं पता होना चाहिए। SO Answer 1, SO Answer 2

+0

यह एक फॉलो-अप-प्रश्न बनाता है: आप विचार कैसे बनाते हैं? मैं व्यूमोडेल को दृश्य से कार्यों को बाध्य करने के लिए रिलेकॉमैंड्स का उपयोग करता हूं, इसलिए दृश्य को यह भी पता नहीं चला कि एक कार्रवाई को निकाल दिया गया है, उसे नहीं पता कि उसे एक नया दृश्य खोलना चाहिए। समाधान: सब्सक्राइब करने के लिए दृश्य के लिए वीएम में एक ईवेंट बनाएं? – Sam

+0

@ सैम - मैं इसके बारे में एक लेख लिखने जा रहा हूं। क्या आप मुझे कुछ उदाहरण दे सकते हैं जहां आदेश स्वयं बनाम बनाम वीएम में रहना चाहिए? – Micah

0

इवान टॉल्सन ने इस विषय पर वास्तव में एक अच्छी प्रस्तुति दी। जानकारी के अधिकांश अपने स्लाइड, जिसे आप यहां से प्राप्त कर सकते में है: http://hestia.typepad.com/flatlander/2008/08/codecamp-2008-.html

3

साकार नहीं कितना बुरा फ़ॉन्ट रेंडरिंग एक परियोजना के शुरू में है और ग्राहक वे इसे देख नहीं खड़े हो सकते हैं के द्वारा कहा जा रहा है कैसे सब कुछ अस्पष्ट दिखता है।

+3

पता नहीं क्यों लोग इसे वोट देते हैं। यह बहुत से लोगों के लिए एक बड़ा मुद्दा रहा है। ऐसा लगता है कि माइक्रोसॉफ्ट ने वीएस 2010 के लिए डब्ल्यूपीएफ का उपयोग करने की कोशिश करने के बाद ही उन्हें एहसास हुआ कि यह एक मुद्दा कितना महत्वपूर्ण था। –

0

कोड का उपयोग करना - विचारों के पीछे, जो बच्चे को एफएसएम रोता है।

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