2012-08-01 12 views
5

मैं एक छात्र हूं और एक सी # डब्ल्यूपीएफ एप्लीकेशन बना रहा हूं।खिड़कियों को दिखाने/छिपाने का सबसे अच्छा तरीका

खिड़की

  • में

    1. साइन खाता बनाएं खिड़की

    2. और मुख्य आवेदन खिड़की: यह तीन खिड़कियां है।

      http://picturepush.com/public/8870554

      मुझे नहीं लगता कि यह एक विंडो बंद अंदर/छिपाने दिखाने बनाने के लिए सही है:

    मैं नेविगेशन के प्रकार को दिखाने के लिए मैं लागू करने के लिए कोशिश कर रहा हूँ एक आंकड़ा अपलोड/एक और खिड़की के लोड घटना।

    1. क्या कोई मुझे इस नेविगेशन को लागू करने का सही तरीका दिखा सकता है?

    2. साथ ही, यह एप्लिकेशन कक्षा के तीन विंडोज निजी गुण बनाने के लिए एक अच्छा अभ्यास है?

    3. अंतिम विंडो में पृष्ठ नेविगेशन का समर्थन करने के लिए एक फ्रेम नियंत्रण है। फिर, क्या मेनविंडो एप्लिकेशन के तीन पृष्ठों को निजी गुण बनाना बेहतर है?

    मुझे खेद है कि यह इतना स्पष्ट या आसान है। धन्यवाद

  • +0

    सवाल वास्तव में बुरा है, लेकिन stackoverflow की तरह एक मंच पर मुश्किल नहीं है, तो मैं डर आप एक अच्छी फिटिंग जवाब नहीं मिल जाएगा हूँ। कम से कम कुछ विचार: विंडोज़ को एप्लिकेशन क्लास के गुण क्यों होना चाहिए? यदि वे मोडल संवाद हैं, तो उन्हें नष्ट कर दिया जाना चाहिए और सीधे नष्ट होने के बाद (पाठ्यक्रम की मुख्य खिड़की को छोड़कर)। नहीं, बंद करें और लोड उचित रूप से सबसे अच्छा विचार नहीं है, क्योंकि मालिक विंडो अभी तक दिखाई नहीं दे रही है। बस उस संवाद को बनाएं जहां आपको इसकी आवश्यकता है और वर्तमान मोडल विंडो को मालिक के रूप में सेट करें। – dowhilefor

    उत्तर

    0

    मेरे पास एप्लिकेशन के गुणों के रूप में तीन खिड़कियां नहीं होंगी। मैं साइन-इन विंडो की एक प्रतिलिपि उत्पन्न करता हूं और इसे मेरे केंद्रीय नियंत्रण बिंदु के रूप में उपयोग करता हूं।

    जब उपयोगकर्ता लॉग इन करता है, तो साइन इन विंडो छुपाएं, एक नई मुख्य विंडो दिखाएं और मुख्य विंडो बंद घटना पर एक हुक जोड़ें।

    , उदा,

    if (logonSuccess) 
    { 
        var mainWindow = new MainWindow(); 
        mainWindow.Closed += ReshowSignupWindow; 
    } 
    

    मैं भी साइन-इन विंडो होगा खाता बनाने खिड़की के लिए भी ऐसा ही। इस प्रकार, मेरे पास साइनअप विंडो पर निर्माण खाता विंडो वापस आती है जो या तो खाता फिर से बनाए जाने पर मुख्य विंडो शुरू कर देती है या मुख्य विंडो शुरू कर देती है।

    उदा .:

    // In sign-in window, handle the create window being closed 
    private void CreateWindowClosedHandler(object sender, EventArgs e) 
    { 
        if (accountCreatedOK) 
        { 
         ShowMainWindow(); 
        } 
        else 
        { 
         ReshowSignupWindow(); 
        } 
    } 
    

    मैं शायद बनाने खाता ShowDialog() के लिए एक कॉल के माध्यम से एक संवाद खिड़की के रूप में दिखाया खिड़की होने पर देखने चाहते हैं।

    आशा है कि मदद करता है ...

    0

    कुछ इस कोड है जैसे कि यह (अपरीक्षित, मैं सिर्फ यह दृश्य स्टूडियो में टाइप कोड स्वत: स्वरूप को) कर सकता XAML लॉग इन संवाद के लिए है। पंजीकरण बटन के लिए बटन और हैंडलर को छोड़कर पंजीकरणDialog समान होना चाहिए।

    <Window x:Class="WpfApplication1.LoginWindow" 
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
         Title="LoginWindow"> 
        <StackPanel> 
         <Button IsDefault="True" Content="Submit" Click="SubmitButton_Click"/> 
         <Button IsCancel="True" Content="Cancel" /> 
         <Button Content="CreateAccount" Click="CreateAccountButton_Click"/> 
        </StackPanel> 
    </Window> 
    
    //Handler of LoginWindow and RegistrationWindow 
    private void SubmitButton_Click(object sender, RoutedEventArgs e) 
    { 
        this.DialogResult = true; 
    } 
    
    //Handler of LoginWindow only 
    private void CreateAccountButton_Click(object sender, RoutedEventArgs e) 
    { 
        this.IsCreatingAccount = true; 
        this.DialogResult = false; 
    } 
    
    public partial class App : Application 
    { 
        protected override void OnStartup(StartupEventArgs e) 
        { 
         bool isCanceled; 
    
         while (loginWin.ShowDialog() == false && !isCanceled) 
         { 
          if (loginWin.IsAccountCreationRequested) 
          { 
           if (registrationWin.ShowDialog()) 
           { 
            isCanceled = true; 
           } 
           else 
           { 
            loginWin.IsAccountCreationRequested = false; 
           } 
          } 
          else 
          { 
           isCanceled = true; 
          } 
         } 
    
         if (loginWin.DialogResult) MainWindow.Show(); 
        } 
    } 
    
    0

    मैं वर्तमान में सिल्वरलाइट एप्लिकेशन पर काम कर रहा हूं जो आपके आवेदन के समान ही कम है। मुझे क्या लगता है कि आपके पास 2 xaml नियंत्रण हो सकते हैं (लॉगिन के लिए एक और अन्य आपके मुख्य एप्लिकेशन के लिए)। खाता बनाने के लिए, आप एक बच्चे की खिड़की का उपयोग कर सकते हैं जिसे लॉगिन नियंत्रण से बुलाया जाएगा। और अपने मुख्य एप्लिकेशन में एक टैबकंट्रोल का उपयोग करें जो आपके अन्य 3 एक्सएमएल नियंत्रण (पेज 1.xaml, पेज 2.xaml और पेज 3.xaml) रखेगा। यह पूछने के लिए स्वतंत्र महसूस करें कि क्या आपके पास कोई समस्या है या नहीं।

    अगर यह आपकी समस्या का हल करता है तो मेरे उत्तर को उत्तर के रूप में चिह्नित करना न भूलें।

    0

    मैं आपको पैटर्न का पालन करने का सुझाव देता हूं। आपका तर्क यूआई (यूजर इंटरफेस) और तर्क के साथ कसकर बाध्यकारी दिखता है।

    मुझे पसंद है सबसे अच्छा पैटर्न WPF या Silverlight के लिए है एमवीवीएम (मॉडल व्यू व्यू मॉडल)। एमवीवीएम के लिए Google में कई उदाहरण उपलब्ध हैं।

    बस किसी भी एमवीवीएम उदाहरण में एक नज़र डालें, आप डब्ल्यूपीएफ या सिल्वरलाइट ऐप विकसित करने में स्पष्ट होंगे।

    कुछ लिंक नीचे हैं, http://msdn.microsoft.com/en-us/magazine/dd419663.aspx http://www.c-sharpcorner.com/UploadFile/raj1979/simple-mvvm-pattern-in-wpf/ http://www.codeproject.com/Articles/126249/MVVM-Pattern-in-WPF-A-Simple-Tutorial-for-Absolute

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