Gå til innhold

Anbefalte innlegg

Hallo igjen. Har nå startet på et prosjekt hvor jeg trenger en virkelig gjennomsiktig bakgrunn i en Panel, og ikke pseudo-løsningen som transparency key er. Når jeg søkte om dette på google hadde 90% av treffene på den første siden denne løsningen på problemstillingen:

protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x20;
return cp;
}
}

protected override void OnPaintBackground(PaintEventArgs e)
{}

Problemet er at jeg ikke vet hvordan jeg kan la dette gjelde en spesifik panel, hvordan gjør jeg dette?

Lenke til kommentar
Videoannonse
Annonse

Det blir veldig kronglete, ettersom jeg da hadde blitt nødt til tegne på flere kontroller, og disse tegningene ville måtte samsvare med hverandre.

Edit: Hva er forresten Linear Gradient?

Endret av Velena
Lenke til kommentar

Container_Paint(object sender, PaintEventArgs e)
{
 foreach(Control c in (sender as Control).Controls)
 {
e.Graphics.DrawRectangle(Pens.Black, new Rectangle(c.Bounds.Left / 4, c.Bounds.Top / 4, c.Bounds.Width + 8, c.Bounds.Height + 8));
 }



}

 

LinearGradient er akkurat hva det hoeres ut som :) det er en bruswh for aa lage overganger.

 

Men jeg vet ikke om noen maate aa laget paneler hvor de selektivt er gjennomsiktige.

 

Men kan du ikke sette backgroundcolor lik Control paa de som skal vaere ugjennomsiktige, og Transparent paa de som skal vaere gjennomsiktige?

Lenke til kommentar
Er det ikke en farge under Web som heter Transparent? Tror jeg brukte den som "bakgrunnsfarge" på noen lables en gang fordi de var oppå et bilde. og da ble det jo ikke så pent med control bakgrunn på de labelene.

Det stemmer, men den fargen gjør ikke noe som helst etter min mening. Skjønner ikke hvorfor de kaller den fargen transparent en gang. Jeg også har behov for å få til transparent. Enkleste eksempel er å lage en bakgrunn med flere farger og sette en label over. Ser helt dustete ut. Skjønner ikke hvorfor dette skal være så vanskelig...

Lenke til kommentar

.NET finnes utenfor Windows Forms ;)

 

Color.Transparent heter det fordi Alpha kanalen er satt til null, hvis du prøver å fylle en rektangel med Brushes.Transparent eller en SolidBrush med Color.Transparent så vil ingenting tegnes.

 

Forresten kan dere se om det hjelper å slenge inn en

SetStyle(ControlStyles.SupportsTransparentBackColor, true);

i Constructoren til kontrollen deres.

Endret av GeirGrusom
Lenke til kommentar
ok.

Men siden .NET er så ufattelig komplett, hvorfor kan da ikke .NET også inneholde en property som heter transparent, som gjør at bakgrunnsfargen i kontrollen er gjennomsiktig. Burde jo være mulig det.

det er jeg helt enig i. og synes også det burde vært enklere å lage vinduer uten ramme for eksempel. men men :) mulig dette er enklere med WPF?

Endret av Svish
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...