Velena Skrevet 1. oktober 2008 Del Skrevet 1. oktober 2008 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
GeirGrusom Skrevet 1. oktober 2008 Del Skrevet 1. oktober 2008 Hvorfor trenger du egentlig gjennomsiktig panel? kan du ikke bare tegne det du skal på kontrollen under, så vil det se ut som et gjennomsiktig panel, og da kan du få til ganske fine effekter med LinearGradient eller lignende. Lenke til kommentar
Velena Skrevet 2. oktober 2008 Forfatter Del Skrevet 2. oktober 2008 (endret) 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 2. oktober 2008 av Velena Lenke til kommentar
GeirGrusom Skrevet 2. oktober 2008 Del Skrevet 2. oktober 2008 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
Svish Skrevet 3. oktober 2008 Del Skrevet 3. oktober 2008 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. Lenke til kommentar
HDSoftware Skrevet 5. oktober 2008 Del Skrevet 5. oktober 2008 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
GeirGrusom Skrevet 5. oktober 2008 Del Skrevet 5. oktober 2008 (endret) .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 5. oktober 2008 av GeirGrusom Lenke til kommentar
Svish Skrevet 5. oktober 2008 Del Skrevet 5. oktober 2008 vel, det funka for meg i hvert fall Lenke til kommentar
HDSoftware Skrevet 5. oktober 2008 Del Skrevet 5. oktober 2008 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. Lenke til kommentar
Manfred Skrevet 5. oktober 2008 Del Skrevet 5. oktober 2008 Hvis du bruker SetStyle og setter bakgrunnen som transparent da? Lenke til kommentar
Svish Skrevet 6. oktober 2008 Del Skrevet 6. oktober 2008 (endret) 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 6. oktober 2008 av Svish Lenke til kommentar
Manfred Skrevet 6. oktober 2008 Del Skrevet 6. oktober 2008 Enklere? Det er jo bare til å endre propertien for hva slags vindu du skal ha det da. Det kunne jo ikke vært enklere å å lage vinduer uten ramme! Lenke til kommentar
Svish Skrevet 6. oktober 2008 Del Skrevet 6. oktober 2008 hva heter den propertyen? Lenke til kommentar
Manfred Skrevet 6. oktober 2008 Del Skrevet 6. oktober 2008 Det GeirGrusom sa, som du sa fungerte? Lenke til kommentar
Svish Skrevet 6. oktober 2008 Del Skrevet 6. oktober 2008 nei jeg nevnte å bruke den Web.Transparent fargen som bakgrunn i controls som labels for eksempel. Det fjerner vel hverken vindusrammen eller bakgrunnen i selve programmet? eller gjør det det? Lenke til kommentar
Manfred Skrevet 6. oktober 2008 Del Skrevet 6. oktober 2008 Åh. Jeg har ikke VS på denne maskinen, men det heter vel noe slikt som WindowStyle eller noe slikt... Lenke til kommentar
Velena Skrevet 6. oktober 2008 Forfatter Del Skrevet 6. oktober 2008 Geirgrusom: Hvordan finner jeg constructoren til en kontroll? Lenke til kommentar
GeirGrusom Skrevet 6. oktober 2008 Del Skrevet 6. oktober 2008 Constructorer er funksjoner med samme navn som kontrollen For eksempel public class MyTransparentPanel : Control { MyTransparentPanel() { SetStyle(ControlStyles.SupportsTransparentBackColor, true); BackColor = Color.Transparent; } } Lenke til kommentar
Velena Skrevet 6. oktober 2008 Forfatter Del Skrevet 6. oktober 2008 Jeg finner ingen slik kode i prosjektet mitt, må jeg kode denne klassen selv? Lenke til kommentar
GeirGrusom Skrevet 6. oktober 2008 Del Skrevet 6. oktober 2008 Er den ikke der fra før, legger du den til. Men hvis du har laget for eksempel en ny UserControl, så skal det normal være en constructor som kaller InitializeComponents() Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå