Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [C#] Problema PictureBoxes e loro Pannello Padre: Color.Transparent sembra non avere effetto
Forum - C# / VB.NET - [C#] Problema PictureBoxes e loro Pannello Padre: Color.Transparent sembra non avere effetto

Avatar
a_butta (Member)
Expert


Messaggi: 578
Iscritto: 16/03/2010

Segnala al moderatore
Postato alle 1:00
Mercoledì, 06/07/2011
Ciao a tutti.
Ho il seguente problema: sto costruendo un progettino gioco-scacchi e per adesso mi stavo soffermando "costruire" la scacchiera con i pezzi sopra.
Posto il codice e a seguito spiego:
Codice sorgente - presumibilmente C++

  1. public void Draw()        
  2. {
  3.     DrawBackground();
  4.     for (int x = 0; x <= 7; x++)
  5.         for (int y = 0; y <= 7; y++)
  6.             if (Celle[x, y] != null)
  7.             {
  8.                 PictureBox image = new PictureBox();
  9.                 image.Image = Celle[x, y].Immagine;
  10.                 image.BackColor = Color.Transparent;
  11.                 image.Parent = PanelContent;
  12.                 image.Width = Celle[x, y].Immagine.Width;
  13.                 image.Height = Celle[x, y].Immagine.Height / 2;
  14.                 image.Left = Celle[x, y].Position.X * SizeCell + (SizeCell / 2 - image.Width / 2);
  15.                 image.Top = Celle[x, y].Position.Y * SizeCell;
  16.                 image.Visible = true;
  17.             }
  18.  
  19.     DrawBackground();
  20. }



Il metodo DrawBackground non fa altro che crearmi i rettangoli colorati (bianchi e neri) della scacchiera sul pannello contenitore PanelContent attraverso il metodo g.FillRectangle(...).
Celle[x, y] è un array contenente l'oggetto Pezzo che viene visualizzato tramite un'immagine in una PictureBox, che ha come Padre PanelContent.
L'immagine (che carico da risorsa) è una GIF con sfondo trasparente, ma il risultato che ottengo è di assenza di trasparenza. L'immagine allegata rende immediatamente l'idea di cosa intendo.

Perchè la PictureBox mantiene il colore del Pannello originale prima che sia stato dipinto?

Grazie anticipatamente


a_butta ha allegato un file: scacchi.jpg (81352 bytes)
Clicca qui per guardare l'immagine

Ultima modifica effettuata da a_butta il 06/07/2011 alle 1:01


PM
Avatar
Lafa_96 (Normal User)
Pro


Messaggi: 111
Iscritto: 09/03/2011

Up
0
Down
V
Segnala al moderatore
Postato alle 11:27
Mercoledì, 06/07/2011
prova a caricare l'immagine con lo sfondo bianco, perchè a me lo sfondo lo da direttamente del back color della picturebox, magari il compilatore interpreta lo sfondo trasparente dell'immagine come bianco (potrei dire una cavolata correggetemi :D)

Ultima modifica effettuata da Lafa_96 il 06/07/2011 alle 11:28
Ho risolto semplicemente ponendo una serie di pannelli-cella anzicchè disegnare con Graphics... Fa proprio schifo quel metodo :) Grazie cmq!! :D - a_butta - 06/07/11 14:10


Non hai bisogno di vedere l’intera scalinata. Inizia semplicemente a salire il primo gradino. (Martin Luther King)
PM