Hallo Leute.
Hab mal wieder ein Problem. 😉
Und zwar habe ich ein SurfaceControl (SDL.Net) auf einem Panel abgelegt und würde gerne, wenn ich die SurfaceControl vergrößere, Scrollbalken angezeigt bekommen.
Die Eigenschaften des Panel:
AutoScroll: true
AutoScrollMinSize: 50,50
AutoSize: false
Dock: None
Die Eigenschaften des SurfaceControl:
Dock: None
SizeMode: AutoSize
Wenn ich jetzt während der Laufzeit ein Bild blitte welches größer ist als das SurfaceControl, wird dieses angepaßt und wird meistens größer als das Panel auf dem es sich befindet. Leider werden die Scrollbalken nicht angezeigt.
Hier mal etwas Code:
...
this.scMap.Size = new Size(800, 800);
this.sfcMapArea = new SDL.Graphics.Surface(new Size(800, 800)); // SurfaceControl
this.scMap.Refresh();
this.sfcMapArea.Fill(Color.White);
this.panelMap.AutoScroll = true; // darauf sitzt das SurfaceControl
this.panelMap.ResumeLayout();
this.ResumeLayout();
// die richtigen Größen werden auch ausgegeben
Console.WriteLine("scMap.Size: " + scMap.Size);
Console.WriteLine("panelMap.Size: " + panelMap.Size);
...
Das selbe "Spiel" habe ich einmal auf eine PictureBox umgestellt und dort funktioniert es komischerweise. Wundert mich halt, da laut SdlDotNet-Dokumentation das SurfaceControl von PictureBox abgeleitet ist. Außerdem sollte es doch egal sein welches Element auf dem Panel liegt oder nicht?
Weiß nicht weiter... Habe bereits "gegoogelt" und auch hier im Forum alles ausprobiert, aber leider ohne Erfolg.
Mfg
SGT_BOB
*************************
Ich bin root, ich darf das... 😜
root>_
*************************
Hallo nochmal.
Ich habe jetzt (erstmal) eine (vorübergehende) Lösung.
Ich platziere mein SurfaceControl auf einem Panel, welches bei Änderung von SurfaceControl.Size dessen Größe annimmt. Dieses platziere ich auf einem weiteren Panel, welches "Autoscroll=true" eingestellt ist.
Hört sich ein wenig verschachtelt an, funktioniert aber. 😁
Ich verstehe allerdings nicht warum das mit dem Autoscroll mit einem anderen Control (hier Panel) funzt und nicht direkt mit dem SurfaceControl, welches ja auch ein Control ist. ?(
Vielleicht hat dafür ja auch jemand eine Erklärung oder eine bessere Lösung als meine.
Ciao
SGT_BOB
*************************
Ich bin root, ich darf das... 😜
root>_
*************************