Cześć,
Załóżmy, że rysuję obrazek składający się z 2 części:
- ramka,
- obraz wewnątrz ramki.
Czy istnieje sposób, na niezależne kontrolowanie obu elementów, to znaczy, żeby np. zmiana koloru ramki nie wymuszała konieczności rysowania całej kontrolki na nowo, tylko samej ramki?
public partial class Obraz : UserControl
{
Point[] punktyRamki;
public Obraz()
{
InitializeComponent();
punktyRamki = new Point[5];
punktyRamki[0] = new Point(0, 0);
punktyRamki[1] = new Point(0, this.Width);
punktyRamki[2] = new Point(this.Width, this.Height);
punktyRamki[3] = new Point(this.Height, 0);
punktyRamki[4] = new Point(0, 0);
}
#region KOLOR RAMY
private Color kolorRamy = Color.Brown;
[System.ComponentModel.Browsable(true),
System.ComponentModel.Category("Obraz"),
Description("KolorRamy")]
public Color KolorRamy
{
get
{
return kolorRamy;
}
set
{
kolorRamy = value;
Invalidate();
}
}
#endregion
#region KOLOR WYPEŁNIENIA
private Color kolorWypelnienia = Color.Red;
[System.ComponentModel.Browsable(true),
System.ComponentModel.Category("Obraz"),
Description("KolorWypelnienia")]
public Color KolorWypelnienia
{
get
{
return kolorWypelnienia;
}
set
{
kolorWypelnienia = value;
Invalidate();
}
}
#endregion
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
this.BackColor = kolorWypelnienia;
Pen pen = new Pen(kolorRamy, 20);
e.Graphics.DrawLines(pen, punktyRamki);
}
}