Forum: PC-Programmierung WPF ScrollBar / Value vs. Maximum vs. ViewportSize


von Peter (Gast)


Lesenswert?

Hallo,

kann mir bitte jemand sagen, wie ich die ViewportSize anpassen, so dass 
sich der Scrollbalken "normal" verhält?

also z.B.

10 Zeilen von 1000 werden angezeigt. Wie muss sich die ViewportSize 
verhalten?

Vielen Dank,
Peter

von Peter (Gast)


Lesenswert?

Also dann vielleich nochmal anders :-)

ich habe beim Scrollbar folgendes gesetzt:

Minimum      = 0
Maximum      = 100
Viewportsize = 100
Value        = 0

der Scrollbalken sieht dann so aus:

<==========---------->

Was muss ich für Viewportsize berechnen, damit der Scrollbalken so 
aussieht:

<====================>

???

Vielen Dank schon jetzt dafür.
Peter

von Peter (Gast)


Lesenswert?

http://msdn.microsoft.com/de-de/library/system.windows.controls.primitives.scrollbar.viewportsize.aspx#Y0

Hier steht, dass man die selben Einheiten verwenden soll. Was soll mir 
das sagen? Wieso ist Thumb in meinem Beispiel nur 50% groß und nicht 
100%?

von Peter (Gast)


Lesenswert?

Hier

http://windows-presentation-foundation.com/WPF_Built_In_Controls.aspx

steht jetzt z.B. folgendes:

You can control the size of a scrollbar's thumb with the ViewPortSize 
property. This can be anywhere from 0 to the Maximum property value. If 
the ViewPortSize is equal to Maximum, the thumb will fill the track, and 
will not be moveable. The smaller ViewPortSize is, the smaller the thumb 
will be.

Das passiert bei mir nicht. Bei mit ist der "thumb" nur 50% groß :-(

Also irgendwas stimmt doch da nicht.

von Peter (Gast)


Lesenswert?

Hmm:

viewportSize = thumbSize×(maximum-minimum)/(trackLength-thumbSize)

das würde ja dann bedeuten, dass 100% Unendlich sind, oder?

von Peter (Gast)


Lesenswert?

... na, war doch gar nicht so schwer (hahaha):

private void scrollBar1_SizeChanged(object sender, SizeChangedEventArgs 
e)
{
    scrollBar1.ViewportSize = (this.Height * 0.5) * 1 / (this.Height - 
(this.Height*0.5));
}

Das würde dann 50% (0.5) entsprechen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.