के साथ पारदर्शी बटन बना सकता हूं मेरे पास एक उपयोगकर्ता इंटरफ़ेस है जिसके लिए सी # प्रोजेक्ट में कुछ राउंड बटन रखने की आवश्यकता है, जिसके पीछे कुछ डेटा है। बटन System.Windows.Forms.buttons और मैंने उन्हें बनाने के लिए पारदर्शिता के साथ एक जीआईएफ छवि का उपयोग किया है। हालांकि, पारदर्शी क्षेत्र पारदर्शी नहीं हैं। मैंने ऑनलाइन संदर्भों की तलाश की है लेकिन इसे ठीक से कैसे किया जाए इसके लिए कोई सुझाव नहीं मिला है। विजुअल स्टूडियो 2008 में ऐसा करने का कुछ उल्लेख है लेकिन मुझे 2005 में इस परियोजना को रखने की जरूरत है। किसी भी मदद या सुझाव की सराहना की जाती है।क्या मैं विजुअल स्टूडियो 2005 में सी #
उत्तर
मुझे यकीन है कि आपको छवि पारदर्शिता प्राप्त करने के लिए WinForms के साथ पीएनजी का उपयोग करने की आवश्यकता है। मुझे पता है कि मैंने उन्हें सफलतापूर्वक इस्तेमाल किया है।
संपादित करें: जब मैंने पीएनजी का उपयोग किया, तो मैं उन्हें फॉर्म 1 पर छवि नियंत्रण के साथ ओवरले कर रहा था। बैकग्राउंड इमेज; मैं बटन में उनका उपयोग नहीं कर रहा था।
मुझे लगता है कि आपकी सबसे अच्छी शर्त छवि नियंत्रण का उपयोग करने के लिए बटन नियंत्रण का उपयोग करने से स्विच करना है। आप बटन शैली को फ्लैट में बदलने का प्रयास भी कर सकते हैं (मुझे लगता है कि यह फ्लैट था, शायद अन्य शैलियों में से एक) और यह देखकर कि क्या आप उस प्रभाव को प्राप्त कर सकते हैं जिसे आप चाहते हैं।
आपको "पारदर्शी" बटन के बैककोलर प्रॉपर्टी को सेट करने की आवश्यकता है।
बटन 1। बैककॉलर = सिस्टम। ड्रॉइंग। रंग। ट्रांसफर;
बटन से व्युत्पन्न एक वर्ग बनाएं और इस कोड को डालें।
protected override CreateParams CreateParams
{
get
{
const int WS_EX_TRANSPARENT = 0x20;
CreateParams cp = base.CreateParams;
cp.ExStyle |= WS_EX_TRANSPARENT;
return cp;
}
}
और में विधि बनाने
SetStyle(ControlStyles.SupportsTransparentBackColor, true);
SetStyle(ControlStyles.Opaque, true);
this.BackColor = Color.Transparent;
मैं दृश्य स्टूडियो 2005 का उपयोग कर रहा है और इसके बाद के संस्करण अपने उदाहरण का अनुसरण की कोशिश की, लेकिन यह काम नहीं किया (स्निपेट में विधि बनाएँ)। मेरे पास मेरे फॉर्म के लिए पृष्ठभूमि है और मैं विकृत बटनों को बनाने की कोशिश कर रहा हूं।
वर्तमान में उपरोक्त कोड डालने से मेरी पृष्ठभूमि पारदर्शी हो जाती है और मेरे बटन रंग में सभी सफेद होते हैं।
यहाँ है मेरे कोड का एक टुकड़ा
Bitmap mainFormBackground = (Bitmap)Image.FromFile("background.jpg");
this.BackgroundImage = mainFormBackground;
this.BackColor = Color.Black;
this.ForeColor = Color.White;
कुछ बटन
SetStyle(ControlStyles.SupportsTransparentBackColor, true);
SetStyle(ControlStyles.Opaque, true);
this.BackColor = Color.Transparent;
मैं भी
btnName.BackColor = Color.Transpare;
की कोशिश की जोड़े यह भी
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
public class TransparentControl : Control
{
public TransparentControl()
{
SetStyle(ControlStyles.SupportsTransparentBackColor, true);
SetStyle(ControlStyles.Opaque, true);
SetStyle(ControlStyles.ResizeRedraw, true);
this.BackColor = Color.Transparent;
}
protected override void OnPaint(PaintEventArgs pevent)
{
Graphics g = pevent.Graphics;
g.DrawRectangle(Pens.Black, this.ClientRectangle);
}
protected override void OnPaintBackground(PaintEventArgs pevent)
{
// don't call the base class
//base.OnPaintBackground(pevent);
}
protected override CreateParams CreateParams
{
get
{
const int WS_EX_TRANSPARENT = 0x20;
CreateParams cp = base.CreateParams;
cp.ExStyle |= WS_EX_TRANSPARENT;
return cp;
}
}
// rest of class here...
}
काम नहीं किया
इस प्रयास करें:
Bitmap temp = new Bitmap(button1.Image);
temp.MakeTransparent(Color.Black); //your transparent color, in this case black
button1.Image = (Image) Logo;
temp.Dispose();
temp = null;
बस सेट बटन FlatStyle property को "फ्लैट" है & hellip; और देखा! मुझे पता है कि यह पीएनजी के साथ काम करता है, लेकिन मैंने इसे जीआईएफ के साथ परीक्षण नहीं किया है।
निम्नलिखित उत्तर विजुअल स्टूडियो 2012 में सत्यापित है और पृष्ठभूमि छवि प्रारूप बीएमपी, जीआईएफ, पीएनजी के साथ ही जेपीजी के साथ काम करता है; एमएस पेंट द्वारा बनाया गया।
बटन के गुणों खिड़की पर जाएं:
अपनी पृष्ठभूमि अपने बटन के माध्यम से दृश्यमान बनाने के लिए।तब FlatStyle और BackColor बदलने नीचे वाले चित्र में दिखाया गया है:
नोट: रंग वेब टैब से चुना जा रहा है और FlatStyle फ्लैट के रूप में चुना जा रहा है।
लेकिन इसके बाद, बटन तब तक पारदर्शी होगा जब तक कि माउस होवर न हो या इसे चुना या दबाया जाए। उस स्थिति पर, यह कुछ गैर पारदर्शी रंग में होगा। यदि आप इसे हमेशा पारदर्शी बनाना चाहते हैं, तो निम्न छवियों का पालन करें और संबंधित रंगों को पहले के रूप में पारदर्शी में बदलें। रंग बदलने के लिए हैं: 'माउसओवरबैककॉलर' & 'माउसडाउनबैककॉलर'।
नोट: आप हमेशा पारदर्शी, दिखाया गया है, वहाँ बटन, जबकि यह कार्रवाई में हो जाएगा की उपस्थिति में कोई परिवर्तन नहीं होगा चुनते हैं, तो!
आशा है कि यह आपकी मदद करेगा।
शुभकामनाएँ!
धन्यवाद, amdfan। मैं देखूंगा कि मैं इसे काम पर ला सकता हूं या नहीं। – Sean