Witam,
W panelu wykonuję pewne operacje rysowania (nie jest to istotne)
private void panel1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
Pen p1 = new Pen(Color.Black, 5);
int yL = 40;
foreach(string ds in Enum.GetNames(typeof(DashStyle)))
{
if (ds != "Custom")
{
foreach(string lc in Enum.GetNames(typeof(LineCap))) {
p1.DashStyle = (DashStyle)(Enum.Parse(typeof(DashStyle),ds));
p1.StartCap = (LineCap)(Enum.Parse(typeof(LineCap),lc));
p1.EndCap = (LineCap)(Enum.Parse(typeof(LineCap), lc));
g.DrawLine(p1, 20, yL, 120, yL);
g.DrawString("DashStyle:"+ds+" LineCap:"+lc, new Font("Arial", 10), Brushes.Black, 140, yL-8);
yL+=20;
}
}
}
p1.Dispose();
}
Dla Form rozmiar minimalny i maksymalny jest ustawiony na sztywno.
W jaki sposób dodać możliwość scrollowania w poziomie i pionie, tak żebym mógł zobaczyć wszystko co zostało wykonane w operacji rysowania?
Próbowałem dla panelu ustawić this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
a dla formularza this.AutoScrollMinSize = new Size(this.panel1.Width, this.panel1.Height);
ale to nie zadziała, bo zwróci mi rozmiary panelu, przed rysowaniem, a po rysowaniu oczywiście będzie dłuższy. Próbowałem też ręcznie ustawić this.AutoScrollMinSize = new Size(999999,99999), ale to także jest bez sensu bo tego rozciągania będzie za dużo.
Jak ustawić, żeby scroll automatycznie dostosowywał się do wielkości tego co zostało narysowane, ręcznie w tym przypadku nie ustawię wielkości bo nie wiem jakich rozmiarów będzie obraz?