Gå til innhold

Anbefalte innlegg

Videoannonse
Annonse

Klikk for å se/fjerne innholdet nedenfor
public class MyPushButton : UserControl, IButtonControl

{

private DialogResult m_diag_res;

 

private System.Drawing.Drawing2D.LinearGradientBrush m_fill_brush;

private StringFormat sf;

 

public MyPushButton()

{

sf = new StringFormat();

sf.LineAlignment = StringAlignment.Center;

sf.Alignment = StringAlignment.Center;

InitializeComponent();

}

 

[browsable(true), Bindable(true), Localizable(true)]

public override string Text

{

get

{

return base.Text;

}

set

{

base.Text = value;

Invalidate();

}

}

 

protected override void OnPaint(PaintEventArgs e)

{

base.OnPaint(e);

 

 

 

Rectangle bounds = new Rectangle(0, 0, Size.Width - 1, Size.Height - 1);

e.Graphics.FillRectangle(m_fill_brush, bounds);

e.Graphics.DrawRectangle(SystemPens.ControlDark, bounds);

e.Graphics.DrawString(Text, Font, SystemBrushes.ControlText, bounds, sf);

 

}

 

protected override void OnResize(EventArgs e)

{

base.OnResize(e);

 

m_fill_brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Point(0, 0), new Point(0, Size.Height), SystemColors.ControlLightLight, SystemColors.ControlDarkDark);

 

System.Drawing.Drawing2D.ColorBlend blend = new System.Drawing.Drawing2D.ColorBlend(6);

blend.Colors = new Color[] { SystemColors.ControlLightLight, SystemColors.ControlLight, SystemColors.Control, SystemColors.Control, SystemColors.ControlDark, SystemColors.ControlDarkDark };

blend.Positions = new float[] { 0.0f, 0.1f, 0.2f, 0.8f, 0.9f, 1.0f };

m_fill_brush.InterpolationColors = blend;

 

}

 

protected override void OnMouseDown(MouseEventArgs e)

{

base.OnMouseDown(e);

 

m_fill_brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Point(0, 0), new Point(0, Size.Height), SystemColors.ControlLightLight, SystemColors.ControlDarkDark);

 

System.Drawing.Drawing2D.ColorBlend blend = new System.Drawing.Drawing2D.ColorBlend(6);

blend.Colors = new Color[] { SystemColors.ControlDarkDark, SystemColors.ControlDark, SystemColors.Control, SystemColors.Control, SystemColors.ControlLight, SystemColors.ControlLightLight };

blend.Positions = new float[] { 0.0f, 0.1f, 0.2f, 0.8f, 0.9f, 1.0f };

m_fill_brush.InterpolationColors = blend;

 

Invalidate();

}

 

protected override void OnMouseUp(MouseEventArgs e)

{

base.OnMouseUp(e);

 

m_fill_brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Point(0, 0), new Point(0, Size.Height), SystemColors.ControlLightLight, SystemColors.ControlDarkDark);

 

System.Drawing.Drawing2D.ColorBlend blend = new System.Drawing.Drawing2D.ColorBlend(6);

blend.Colors = new Color[] { SystemColors.ControlLightLight, SystemColors.ControlLight, SystemColors.Control, SystemColors.Control, SystemColors.ControlDark, SystemColors.ControlDarkDark };

blend.Positions = new float[] { 0.0f, 0.1f, 0.2f, 0.8f, 0.9f, 1.0f };

m_fill_brush.InterpolationColors = blend;

 

Invalidate();

 

}

 

#region IButtonControl Members

 

public DialogResult DialogResult

{

get

{

return m_diag_res;

}

set

{

m_diag_res = value;

}

}

 

public void NotifyDefault(bool value)

{

 

}

 

public void PerformClick()

{

base.OnClick(null);

}

 

#endregion

}

Endret av GeirGrusom
Lenke til kommentar

Argh! dumme meg!

Jeg driver og poster C# i VB forumet!

 

Kan ikke alle bare slutte å bruke VB.NET og gå over til C#? det hadde gjort alt enklere for alle :p

 

Bah!

Uansett, kikk på UserControls, all tegning skjer i OnPaint, og husk å ikke ta vekk MyBase.OnPaint(sender, e)

Du tvinger kontrollen til å tegne på nytt med Invalidate.

 

Du kan endre utseende på en form ved å velge FormBorderStyle = None og tegne med OnPaint, eller Paint event.

Lenke til kommentar

Her er verdens enkleste måte å endre på utseende:

Åpne Paint. Tegn et skjermbilde slik du ser det for deg. Lagre som BMP. Hent opp i programmet ditt og la det være brakgrunn. Kompiler og vips - et program med et helt unikt utseende - garantert!

 

Hør, endring av utseende er et relativt vidt begrep. Om du ønsker å endre utseende på programmene dine og derav ikke følge Windows standard så er det helt opp til deg. Du kan endre farger, tykkelse på streker, legge på grafiske bilder, nær sagt hva du vil. Det er jo bare din fantasi som stopper deg her. Eneste du ikek får til "out of the box" er å lage runde og treekantede vinduer, men det finnes muligheter der og ved å sette et vindu transparent og så følge bruksanvisningen jeg lett spøkte med øverst i dette innlegget, men det er for viderekommende

Lenke til kommentar
Her er verdens enkleste måte å endre på utseende:

Åpne Paint. Tegn et skjermbilde slik du ser det for deg. Lagre som BMP. Hent opp i programmet ditt og la det være brakgrunn. Kompiler og vips - et program med et helt unikt utseende - garantert!

 

Dette er litt pirk, men det må sies: bruk PNG, mindre filer, og støtter 32-, 48- og 64-bit bilder(32-bit BMP bilder er ikke støttet av alle programmer) samt gamma justeringer, animasjoner og meta tags.

Det er også komprimert med LZH/LZW (lossless) og støttet av mer programvare.

 

Hvorfor bruke BMP når PNG er suverent bedre på alle områder? Paint kan også åpne og lagre PNG bilder.

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...