Eigenes Scrolling
-
Ich habe folgendes Problem. Ich habe ein Steuerelement welches viele Daten anzeigen soll. Da das enorm groß wird, habe ich einen Load on Demand Mechanismus implementiert, der das Steuerelement mit den Daten befüllt die gerade dargestellt werden sollen.
Dadurch kommt aber das Problem auf, dass das Scrolling nicht mehr so wirklich gut funktioniert. Es können ja keine Scrollbars für Bereiche dargestellt werden, die (noch) nicht da sind.
Erst habe ich mir gedacht das ich mich direkt in die Scrollbar des Steuerelementes einklinke und dort die Werte richtig setze. Optisch ist das ganze aber nicht wirklich brauchbar. Es gibt wohl Momente wo er wirklich die ClientArea für die Berechnung zur Hilfe nimmt, dadurch entsteht ein Flimmern zwischen meinen korrekten Wert und dem Wert des STeuerelementes aufgrund der ClientArea.
Ich habe bei den Steuerelement nicht rausgefunden wie ich die ClientArea von Haus aus auf den richtigen Wert einstellen kann.
Daher ist nun mein dritter Gedanke, die Scrollbars komplett zu deaktivieren und das Scrolling selber zu übernehmen. Aber hier zeigen sich nun wieder Probleme: Füge ich zwei Scrollbars von Hand ein, klappt das soweit ganz gut. Dort weiß ich aber nicht wie ich die größe der Schieber Skalieren kann (also Prozentual zum angezeigten bereich). Zusätzlich hab ich keine Ahnung davon wie ich die Scrollbars aus/einblende (Wann werden sie gerade nicht benötigt). Bzw beim Ausblenden sind ja die Bereiche der Scrollbars nicht belegt. D.H. dort ist nur der Graue Fensterhindergrund.Wenn ich ein Panel nehme kann ich von dem zwar die Größe Frei bestimmen, aber wenn ich dort drauf mein Steuerelement zeichne, verschiebe ich es ja mit den Scrollbar. Welche Ansätze gängen denn noch?
-
Absätze, mehr Absätze! Die würden deinem Post gut tun
Mit was machst du das? Windows Forms oder? Im Prinzip bekommst du das schon hin, du musst die Daten irgendwie zwischenspeichern und nur berechnen, welcher prozentuale Anteil der Daten im Steuerelement angezeigt werden kann. Danach solltest du doch mit der eigenen ScrollBar ein leichtes Spiel haben?
-
Damit kriege ich ggf die Scrollbars mit der Size behandelt. Hab da gar nicht soweit gedacht, dass ich das ganze mit Prozentrechnung angehen könnte.
Damit besteht aber immer noch das Problem beim Ausblenden der Scrollbars. Entweder vergrößere ich in diesen moment den Clientbereich oder ich mache ihn vorher größer und verdecke die rechte untere Ecke mit einen leeren Panel.
Was Vorgefertigtes gibts dafür wohl nich?
-
Irgendwie steh ich grade total auf den Schlauch (oder es ist noch zu Früh am Morgen).
Ggf mangelt es gerade nur am Verständnis für die Funktionsweise des Scrollbars.
Ich habe einen Viewport mit X-Size und Y-Size, und eine ClientArea mit einer (meist) viel größeren X-Size und Y-Size.Bisher habe ich einfach die Min, Max Werte meiner ClientArea als min und max für die Scrollbars eingesetzt. Und die aktvalue als Start für den Viewport. Das Klappt auch zum Teil. Damit vergrößert sich aber nicht der Scrollbalken. Wie muss ich berechnen das sowas klappt?