2011-07-07 23 views
9

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

यदि यह नहीं किया जा सकता है, तो क्या यह संभव है कि ग्राफ छुपा/छोटा आकार पर ग्राफ दिखाए, ग्राफ को सहेजें, विंडो बंद करें, और प्रत्येक ग्राफ के लिए दोहराएं?

उत्तर

7

यह संभव है।

आप बना सकते हैं और हमेशा की तरह ZedGraph नियंत्रण में हेरफेर, लेकिन सिर्फ Form.Controls सूची में जोड़ने नहीं है, उदाहरण के लिए, InitializeComponent() विधि में, कुछ है कि नीचे

this.Controls.Add(this.zedGraphControl); 

वहाँ की तरह लग रहा बाहर टिप्पणी ग्राफ

  • यदि आप एक SaveAs संवाद दिखाना चाहते हैं, तो ग्राफ़ नियंत्रण पर SaveAs() पर कॉल करने के कुछ तरीके हैं। ("Test.bmp")

    zedGraphControl.MasterPane.GetImage() सहेजें:

  • आप संवाद नहीं करना चाहते हैं, तो आप बाहर MasterPane पर GetImage() का उपयोग कर छवि लिख सकते हैं, और उसके बाद सहेजें। ;

    var zedGraph = new ZedGraphControl(); 
    
    // configure ZedGraphControl here 
    
    using (var g = zedGraph.CreateGraphics()) 
    { 
        zedGraph.MasterPane.ReSize(g, new RectangleF(0, 0, widthPx, heightPx)); 
    } 
    zedGraph.MasterPane.GetImage().Save(Path.Combine(destinationDir, "test.bmp")); 
    

    यह भी किसी भी डेस्कटॉप के बिना सेवा के रूप में चलाने के लिए सक्षम होना चाहिए:

+1

मेरे पास एक पृष्ठभूमिवर्कर है जो ग्राफ़ उत्पन्न करने के लिए कोड चलाता है, साथ ही साथ अन्य कार्यों को असीमित रूप से भी चलाता है। मैंने यह निर्धारित किया है कि पृष्ठभूमि थ्रेड पर ज़ेडग्राफ कंट्रोल उत्पन्न करने से थ्रेड को पूरा नहीं किया जाएगा (कार्य पूर्ण घटना के माध्यम से), भले ही DoWork विधि निष्पादित हो। क्या ऐसा करने के लिए कोई और तरीका है? –

+0

मैंने अभी यह कोशिश की और यह मेरे लिए काम किया, मैंने कर्मचारी के साथ पंजीकृत किया। RunWorkerCompleted + = नया RunWorkerCompletedEventHandler (BackgroundWorker1_RunWorker पूर्ण); – PeskyGnat

+0

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

5

यहाँ बना सकते हैं और किसी भी WinForms बुनियादी सुविधाओं के लिए आवश्यक बिना बिटमैप बचाने के लिए एक कोड का टुकड़ा है। केवल नकारात्मक पक्ष यह है कि इसका उपयोग करने के लिए आपको System.Windows.Forms और System.Drawing संदर्भित करने की आवश्यकता है।