आप प्रोग्रामेटिक रूप से नेट नियंत्रण की तस्वीर कैसे प्राप्त करते हैं?प्रोग्रामेटिक रूप से .Net WinForms नियंत्रण का स्क्रीन कैप्चर कैसे प्राप्त करें?
उत्तर
DrawToBitmap नामक प्रत्येक नियंत्रण पर एक विधि है। ऐसा करने के लिए आपको पी/आवेक करने की आवश्यकता नहीं है।
public void DrawToBitmap(Bitmap bitmap, Rectangle targetBounds);
यह सब नियंत्रण के साथ काम नहीं करता है, तथापि:
Control c = new TextBox();
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(c.Width, c.Height);
c.DrawToBitmap(bmp, c.ClientRectangle);
इसका समर्थन WinForms नियंत्रण के लिए, वहाँ System.Windows.Forms.Control कक्षा में एक विधि है। तीसरे पक्ष के घटक विक्रेताओं के पास अधिक व्यापक समाधान हैं।
आप में शुरू होने वाले .NET 2.0
यहाँ VB में
Dim formImage As New Bitmap("C:\File.bmp")
Me.DrawToBitmap(formImage, Me.Bounds)
एक नमूना है बहुत आसानी से प्रोग्राम के रूप में एक .NET नियंत्रण का एक चित्र प्राप्त नियंत्रण वर्ग के
DrawToBitmap विधि का उपयोग कर सकते हैं
और यहाँ यह सी # में है:
Bitmap formImage = New Bitmap("C:\File.bmp")
this.DrawToBitmap(formImage, this.Bounds)
अगर यह सह पर नहीं है ntrol आप करने की कोशिश कर रहे हैं, आप आमतौर पर इसे बेस कंट्रोल क्लास में डाल सकते हैं और DrawToBitmap विधि को कॉल कर सकते हैं।
नियंत्रण। DrawToBitmap आपको बिटमैप पर अधिकतर नियंत्रण आकर्षित करने देगा। यह RichTextBox और कुछ अन्य के साथ काम नहीं करता है। यदि आप इन्हें कैप्चर करना चाहते हैं, या उनमें से एक नियंत्रण है, तो आपको जेफ द्वारा सुझाए गए कोड प्रोजेक्ट आलेख http://www.codeproject.com/KB/graphics/imagecapture.aspx में वर्णित PInvoke करना होगा। ध्यान रखें कि इनमें से कुछ विधियां स्क्रीन पर जो कुछ भी कैप्चर करेंगे, इसलिए यदि आपके पास अपने नियंत्रण को कवर करने वाली एक और विंडो है तो आपको इसके बजाय मिल जाएगा।
वेब ब्रोसर के लिए, मैंने बस इसे नियंत्रित करने और उसे वहां कॉल करने के लिए डाला। मैंने इसे किया है और यह जानता है कि यह काम करता है। RichTextBox के बारे में निश्चित नहीं है – Nick
Panel1.Dock = DockStyle.None ' If Panel Dockstyle is in Fill mode
Panel1.Width = 5000 ' Original Size without scrollbar
Panel1.Height = 5000 ' Original Size without scrollbar
Dim bmp As New Bitmap(Me.Panel1.Width, Me.Panel1.Height)
Me.Panel1.DrawToBitmap(bmp, New Rectangle(0, 0, Me.Panel1.Width, Me.Panel1.Height))
'Me.Panel1.DrawToBitmap(bmp, Panel1.ClientRectangle)
bmp.Save("C:\panel.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)
Panel1.Dock = DockStyle.Fill
नोट: इसका काम कर ठीक
यह कैसे एक पूरे Form
के लिए ही नहीं, ग्राहक क्षेत्र (जो शीर्षक पट्टी और अन्य ड्रेसिंग नहीं है)
Rectangle r = this.Bounds;
r.Offset(-r.X,-r.Y);
Bitmap bitmap = new Bitmap(r.Width,r.Height);
this.DrawToBitmap(bitmap, r);
Clipboard.SetImage(bitmap);
- 1. प्रोग्रामेटिक रूप से .NET
- 2. प्रोग्रामेटिक रूप से .NET
- 3. प्रोग्रामेटिक रूप से GPU उपयोग प्राप्त करें
- 4. .NET (Winforms) में किसी रूप में नियंत्रण नियंत्रण?
- 5. एंड्रॉइड में प्रोग्रामेटिक रूप से लॉक स्क्रीन कैसे करें?
- 6. लिनक्स में प्रोग्रामेटिक रूप से स्क्रीन को कैसे अलग करें?
- 7. Winforms TableLayoutPanel प्रोग्रामेटिक रूप से पंक्तियों को जोड़ना
- 8. प्रोग्रामिंग एसएसएच शैल सत्र प्रोग्रामेटिक रूप से कैसे प्राप्त करें?
- 9. स्क्रीनशॉट कैप्चर करें .NET
- 10. प्रोग्रामेटिक रूप से डीएलएल निर्भरताओं को कैसे प्राप्त करें
- 11. प्रोग्रामेटिक रूप से थीम रंग प्राप्त करें
- 12. प्रोग्रामेटिक रूप से स्टोरीबोर्ड आईडी प्राप्त करें?
- 13. प्रोग्रामेटिक रूप से Winforms एप्लिकेशन में टूलटिप दिखाएं
- 14. प्रोग्रामेटिक रूप से एंड्रॉइड
- 15. लेआउट_मार्गिन प्रोग्रामेटिक रूप से कैसे सेट करें?
- 16. निर्यात सी # रिपोर्टव्यूवर नियंत्रण प्रोग्रामेटिक रूप से
- 17. WinForms एप्लिकेशन में टैब्स कुंजी कैप्चर कैसे करें?
- 18. .NET WinForms
- 19. एंड्रॉइड स्क्रीन लॉक/प्रोग्रामेटिक रूप से अनलॉक करें
- 20. WinForms WebBrowser नियंत्रण
- 21. किसी प्रोग्राम के साथ प्रोग्रामेटिक रूप से कैसे बातचीत करें
- 22. ट्रिगर नियंत्रण कार्यक्रम प्रोग्रामेटिक रूप से
- 23. सी # Winforms संपादन नियंत्रण
- 24. प्रोग्रामेटिक रूप से उदाहरण के सार्वजनिक डीएनएस कैसे प्राप्त करें?
- 25. python.exe स्थान प्रोग्रामेटिक रूप से कैसे प्राप्त करें?
- 26. प्रोग्रामेटिक रूप से वर्तमान ऑडियो स्तर कैसे प्राप्त करें?
- 27. पंक्ति और कॉलम अनुक्रमणिका द्वारा WPF ग्रिड में प्रोग्रामेटिक रूप से नियंत्रण कैसे प्राप्त करें?
- 28. एसडीके/प्रोग्रामेटिक रूप से आईफोन पर ऐपआईड कैसे प्राप्त करें?
- 29. लिंक गति प्रोग्रामेटिक रूप से कैसे प्राप्त करें?
- 30. प्रोग्रामेटिक रूप से अनदेखा करें
यह थोड़ा अस्पष्ट है, यह समझाने की कोशिश करें कि आप क्या करने की कोशिश कर रहे हैं। नीचे मत मत घूमना। –
कोई भटकना नहीं है? मुझे लगता है कि अर्थ पूरी तरह स्पष्ट है। वह एक नियंत्रण के बिटमैप प्रतिनिधित्व प्राप्त करना चाहता है। – Will
मैं विल के साथ सहमत हूं। यह एक सरल और स्पष्ट सवाल है। – Bogdan