Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Scrollbars mit SDL.SurfaceControl
SGT_BOB
myCSharp.de - Member



Dabei seit:
Beiträge: 125
Herkunft: Aachen

Themenstarter:

Scrollbars mit SDL.SurfaceControl

beantworten | zitieren | melden

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>_
*************************
private Nachricht | Beiträge des Benutzers
SGT_BOB
myCSharp.de - Member



Dabei seit:
Beiträge: 125
Herkunft: Aachen

Themenstarter:

beantworten | zitieren | melden

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>_
*************************
private Nachricht | Beiträge des Benutzers