Just nu i M3-nätverket
Gå till innehåll
Toby

Transparent bakgrund i .NET?!

Rekommendera Poster

Hur får man transparent bakgrund i en PictureBox i .NET?! Jag har en .gif med transparent bakgrund men blir inte av med bakgrundsfärgen i PictureBox:en... Har läst något om BackStyle.transparent men detta funkar inte med en PictureBox... Det kan väl för fan inte vara så här svårt att "frilägga" en bild?! Är ingen programmerare men om jag inte minns fel funkade detta i VB6 (gäller även texter i en Label, blir inte av med bakgrundsförgen...)

 

Tack på förhand!

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Nedanstående gäller för Web Applications:

 

Varför använder du inte "IMAGE" i stället? Där sätter man BackColor till transparent.

 

Klistra in följande i kod-läge. Exemplet är i C# och förutsätter att Image controllen är döpt till Image1, Det är bara att ta bort ";" i slutet om du kör i VB:

 

Image1.BackColor = Color.Transparent;
Image1.BorderStyle = BorderStyle.None;

 

Eller klistra in följande i html-läge:

 

<asp:Image id="Image1" style="Z-INDEX: 101; LEFT: 74px; POSITION: absolute; TOP: 138px" runat="server" BackColor="Transparent" BorderStyle="None" ImageUrl="image.gif"></asp:Image>

 

Mvh

 

Jimmy

 

[inlägget ändrat 2002-07-04 21:27:30 av dotgif]

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

För Windows Applikationer och PictureBox är det samma property.

Sätt bara "PictureBox1.BackColor = Color.Transparent".

 

Mer info om PictureBox finns på MSDN:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vxconchangestopictureboxcontrolinvisualbasicnet.asp

 

 

Mvh

 

Jimmy

 

[inlägget ändrat 2002-07-04 22:38:33 av dotgif]

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Använder just BackColor = Color.Transparent men det verkar inte funka i alla fall... Shälva pictureboxen blir inte genomskinlig...

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Hej!

 

Jag har skapat en picturebox både i VB och C# och satt pictureboxens backcolor till transparent. När man sen ändrar färgen på formuläret så ändras även bakgrundsfärgen i picturebox.

 

Om det du vill uppnå är att överlappa flera picturebox eller objekt på formuläret med transparency på PictureBoxen, så har jag tyvärr inte hittat något sätt ännu.

 

Det verkar dock som om nedanstående ger en hint om det skall gå på något sätt:

PictureBox1.Image.IsAlphaPixelFormat(Drawing.Imaging.PixelFormat.Alpha)

Returnerar true.

 

Jag kollar vidare på det.

 

 

Mvh

Jimmy

 

 

 

 

 

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

 

Hmm. Det här citatat från MSDN Library verkar inte lovande:

 

In Visual Basic 6.0, the BackStyle property of the Label control determined whether the label had a transparent background. Setting the BackStyle property to 0 – Transparent allowed any background image or other controls to show through the label.

 

In Visual Basic .NET, the BackStyle property no longer exists, and the transparency behavior is slightly different. To emulate the transparent behavior in Visual Basic .NET, set the BackColor property to System.Drawing.Color.Transparent. This will allow the background image to show through, but it will not be transparent in regard to other controls.

 

Jag kollar vidare

 

/Jimmy

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

 

Hej!

 

Om det nu var överlappning av bilder du var ute efter, så kan ett sätt vara att skapa en stor PictureBox och sen lägga alla bilder i den. I så fall kan du lägga följande event för att rita ut bilderna.

 

 

   Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
       Dim myBitmap As New Bitmap("C:\Images\Test.gif")
       Dim backColor As Color = myBitmap.GetPixel(1, 1)

       ' Make backColor transparent for myBitmap.
       myBitmap.MakeTransparent(backColor)
       ' Draw the transparent bitmap to the screen two times.
       e.Graphics.DrawImage(myBitmap, 0, 0, myBitmap.Width, myBitmap.Height)
       e.Graphics.DrawImage(myBitmap, 50, 0, myBitmap.Width, myBitmap.Height)

   End Sub

Kanske inget direkt smidigt, men man kan göra en funktion som man köra på respektive bild som man vill ha transparent. Jag kollar i morgon om det finns något bättre sätt.

 

Mvh

 

Jimmy

 

 

 

 

 

 

[inlägget ändrat 2002-07-06 03:03:46 av dotgif]

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...