How to make TextBlock scrollable inWPF

c#, rss, wpf

Solution

Just remove `Width` and `Height` from your `TextBlock` in `Scrollviewer` and it should work. By the way: there is no need for `ScrollViewer.CanContentScroll="True"`.

Problem

I want to have my textblock area scrollable as there is a lot text to load. I will put al of the code as it is not too big so you can test it. ``` <UserControl x:Class="Fleet_management.Info" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" mc:Ignorable="d" Height="492" Width="578"> <UserControl.Background> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="#FFE2E2E2" Offset="0" /> <GradientStop Color="White" Offset="1" /> </LinearGradientBrush> </UserControl.Background> <UserControl.Resources> <XmlDataProvider x:Key="rssData" XPath="//item" Source="*******" /> </UserControl.Resources> <Grid Margin="3" Height="598" Width="565"> <Grid.ColumnDefinitions> <ColumnDefinition Width="252*" /> <ColumnDefinition Width="90*" /> <ColumnDefinition Width="223*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="177*" /> <RowDefinition Height="55*" /> <RowDefinition Height="122*" /> <RowDefinition Height="177*" /> </Grid.RowDefinitions> <ListBox x:Name="lstItems" Margin="3,0" ItemsSource="{Binding Source={StaticResource rssData}}" SelectedIndex="0" VerticalAlignment="Stretch" FontStretch="Normal" FontSize="14" FontFamily="Lucida Sans Unicode" Grid.ColumnSpan="3"> <ListBox.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <Image Width="20" Margin="3" Source="{Binding XPath=enclosure/@url}" /> <TextBlock Margin="3" VerticalAlignment="Center" Text="{Binding XPath=title}" FontWeight="Bold" /> </StackPanel> </DataTemplate> </ListBox.ItemTemplate> </ListBox> <StackPanel Grid.Row="1" Orientation="Vertical" DataContext="{Binding ElementName=lstItems, Path=SelectedItem}" Margin="0,0,0,5" Grid.ColumnSpan="3"> <TextBlock Margin="3" FontSize="13" FontWeight="Bold" Text="{Binding XPath=title, Path=InnerText}" /> <TextBlock Margin="3" Opacity="0.72" Text="{Binding XPath=pubDate}" /> </StackPanel> <ScrollViewer Grid.Row="2" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto" DataContext="{Binding ElementName=lstItems, Path=SelectedItem}" Margin="0,0,3,115" Grid.RowSpan="2" Grid.ColumnSpan="3"> <TextBlock ScrollViewer.CanContentScroll="True" Margin="3" FontStyle="Italic" Text="{Binding XPath=description, Path=InnerText}" TextWrapping="Wrap" TextAlignment="Justify" Width="528" AllowDrop="False" Foreground="#FF0000E7" FontFamily="Lucida Sans Unicode" Height="215" FontSize="14" Padding="0,0,5,0" /> </ScrollViewer> </Grid> </UserControl> ``` This is the part that is not working correctly: ``` <ScrollViewer Grid.Row="2" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto" DataContext="{Binding ElementName=lstItems, Path=SelectedItem}" Margin="0,0,3,115" Grid.RowSpan="2" Grid.ColumnSpan="3"> <TextBlock ScrollViewer.CanContentScroll="True" Margin="3" FontStyle="Italic" Text="{Binding XPath=description, Path=InnerText}" TextWrapping="Wrap" TextAlignment="Justify" Width="528" AllowDrop="False" Foreground="#FF0000E7" FontFamily="Lucida Sans Unicode" Height="215" FontSize="14" Padding="0,0,5,0" /> </ScrollViewer> ``` Code is loading text but not all of it, there should be scroll

Original source