2012-03-23 28 views
6

की सामग्री बदलें जब मैं अपने नेविगेशन बार पर बटन पर क्लिक करता हूं, तो एक नई विंडो खुलती है। उदाहरण के लिए:WPF विंडो

private void btFinanzen_Click(object sender, RoutedEventArgs e) 
    { 
     Finanz mw = new Finanz(login); 
     mw.Show(); 

    } 

अब, मैं इसे एक नई विंडो में दिखाना नहीं चाहता हूं। इसके बजाय, मैं इसे एक ही विंडो में दिखाना चाहता हूं। मैंने निम्नलिखित के साथ प्रयास किया:

private void btFinanzen_Click(object sender, RoutedEventArgs e) 
    { 
     Finanz mw = new Finanz(login); 
     //mw.Show(); 
     this.Content = Finanz f; 

    } 

लेकिन यह असफल रहा। मुझे क्या कहना चाहिए, कि अब मेरे पास कई अलग-अलग खिड़कियां हैं और वे सभी एक खिड़की पर दिखाना चाहते हैं - प्रत्येक एक अलग बटन पर क्लिक करके। मैं इसे कैसे प्रबंधित कर सकता हूं?

उत्तर

6

आपको अपनी प्रतिस्थापन योग्य सामग्री के लिए विंडो के बजाय UserControl का उपयोग करना है। प्रत्येक संभावित सामग्री के लिए एक नया UserControl जोड़ें जिसे आप इसमें दिखाना चाहते हैं। अपनी परियोजना के लिए सामग्री। उस सामग्री को जो आपने पहले दूसरी विंडो में उचित UserControl में जोड़ा था। उसके बाद आप बस अपने कोड में नए नियंत्रण को तुरंत चालू कर सकते हैं और इसे अपनी मुख्य विंडो के अपने सामग्री क्षेत्र में असाइन कर सकते हैं।

उदाहरण के लिए आप अपनी पिछली Finanz विंडो की सामग्री के साथ UserControl ctlFinanz बनाते हैं। अब आप बस लिखें:

this.Content = new ctlFinanz(login); 

है यही कारण है कि सभी :-)

1

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

0
मेरे लिए

, इस जगह पृष्ठों के साथ एक फ्रेम का उपयोग करने जैसा लगता है। बहुत सारी खिड़कियां बनाने के बजाय, एक खिड़की को फ्रेम के साथ बनाएं, फिर सामग्री को पृष्ठों में रखें। तो आपको बस इतना करना है कि फ्रेम को बदल दें। प्रत्येक बार जब आप नेविगेशन बटन दबाते हैं तो एक अलग पृष्ठ पर सहमति दें।

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