Laden...

ScrollViewer

Erstellt von PMNS vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.257 Views
P
PMNS Themenstarter:in
99 Beiträge seit 2008
vor 13 Jahren
ScrollViewer

Hallo, ich habe ein StackPanel - Orientation=Horizontal, in dem 2 weitere StackPanels sind.
Das 2. StackPanel soll Scrollbars anzeigen, wenn sein Inhalt zu groß ist.
Mein Problem ist, dass die Scrollbars aber nicht angezeigt werden!
Kann mir jemand sagen, woran das liegen kann und ob es dafür eine Lösung gibt?

Gruss
Sven

<Window x:Class="ScrollBarTest.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
<StackPanel Orientation="Horizontal">
	<StackPanel Width="100" Background="Red" />
	<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
		<StackPanel>
			<!-- übergroßes Objekt, welches die Scrollbars sichtbar machen sollte.-->
			<StackPanel Width="500" Height="350" Background="Cyan"/>
		</StackPanel>
	</ScrollViewer>
</StackPanel>
</Window>


L
862 Beiträge seit 2006
vor 13 Jahren

Das liegt daran dass das StackPanel seinen Innhalt auf der Laufachse (X bei Orientation==Horizontal und umgekehrt) einfach so platziert als würde dort unendlich Platz zur Verfügung stehen.

D.h. hier konkret dass der Horizontale Scrollbalken nicht angezeigt wird da das äusserste StackPanel den ScrollViewer einfach entsprechend breit macht so dass kein Horizontales Scrollen nötig wird. Dass der ScrollViewer selbst nicht mehr ins StackPanel passt merkt das StackPanel nicht.

Ich würde dir empfehlen für deine GUI ein anderes LayoutPanel zu benutzen. DockPanel eignet sich ganz gut für wenige Elemente. Für komplexes Layout empfehle ich das Grid.

P
PMNS Themenstarter:in
99 Beiträge seit 2008
vor 13 Jahren

Bin zur Zeit ziemlich im Streß und kann deshalb erst jetzt antworten.
Aber vielen Dank Lector. Das hat mir sehr weiter geholfen.
Gruss Sven