Entwickler-Ecke

WPF / Silverlight - TextBlock Scollbar hinzufügen


tomo2403 - So 02.02.20 16:28
Titel: TextBlock Scollbar hinzufügen
Hallo, :)

ich versuche vergeblich einem TextBlock, Scrollbars hinzuzufügen.
Ich habe zwar auf Stackoverflow einen Beitrag gefunden (https://stackoverflow.com/questions/1192335/automatic-vertical-scroll-bar-in-wpf-textblock?rq=1), allerdings funktioniert das so nicht bei mir.
Ich habe auch schon mit allen Eigenschaften die was mit Scrollbars zu tun hatten rumprobiert.


XML-Daten
1:
2:
3:
4:
5:
<Window [...]>
    <ScrollViewer>
            <TextBlock x:Name="txtblock" TextWrapping="Wrap"/>
    </ScrollViewer>
</Window>


Eigentlich sollte die Scrollbar erscheinen, wenn mehr Text da ist als in das Fenster passt.
Momentan ist es aber so, dass wenn die Fensterhöhe kleiner ist als die Gesamthöhe vom Text, wird der Text einfach nicht mehr angezeigt und es erscheint auch keine Scrollbar.

Was mache ich falsch? :cry: :?


doublecross - Mo 03.02.20 09:00

Hallo,

versuche es mal mit


XML-Daten
1:
2:
3:
<ScrollViewer VerticalScrollBarVisibility="Auto">
        <TextBlock x:Name="txtblock" TextWrapping="Wrap"/>
</ScrollViewer>


Moderiert von user profile iconTh69: C#- durch XML-Tags ersetzt


tomo2403 - Mo 03.02.20 09:03

Das habe ich auch schon versucht. Hat aber auch nichts gebracht.


doublecross - Mo 03.02.20 09:41

Hi,

also ich habe gerade einmal einen Textblock in einem Bestehenden Projekt mit einem ScrollViewer umschlossen. Das ganze sieht jetzt so aus:


XML-Daten
1:
2:
3:
4:
5:
<ScrollViewer Grid.Row="1" Grid.Column="1" Margin="3">
    <TextBlock TextWrapping="Wrap" >
        Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
    </TextBlock>
</ScrollViewer>


Das Ergebnis ist glaube ich das was du erreichen möchtest, somit braucht es die von mir vorgeschlagene VerticalScrollBarVisibility tatsächlich nicht.:

ScrollBox

Wichtig ist aber, dass die Zelle in meinem Grid eine Feste Höhe und Breite hat, also keinen Auto Anteil. Vielleicht liegt da das Problem, muss du die Größe der Scrollbox oder ihres Containers noch fixieren?

Moderiert von user profile iconTh69: C#- durch XML-Tags ersetzt


tomo2403 - Mo 03.02.20 17:06

Ich habe meinen Fehler gefunden. In meinem Code habe ich den TextBlock der Content-Eigenschaft der Fensters zugewiesen (Warum auch immer).
Demzufolge wurde der ScrollView einfach durch den TextBlock ersetzt.

Trotzdem danke. :D

Kann ich das jetzt noch so einstellen, das der ScrollView immer ganz unten ist, also immer das Ende vom TextBlock sichtbar ist?


Th69 - Mo 03.02.20 17:36

Schau dir mal die Antworten in How to scroll to the bottom of a ScrollViewer automatically with Xaml and binding? [https://stackoverflow.com/questions/8370209/how-to-scroll-to-the-bottom-of-a-scrollviewer-automatically-with-xaml-and-bindin] an (ScrollToBottom [https://docs.microsoft.com/de-de/dotnet/api/system.windows.controls.scrollviewer.scrolltobottom] ist die Methode dafür).


tomo2403 - Mo 03.02.20 17:45

OK, danke :zustimm: