WPF ScrollView and TextBlock

本文关键字:TextBlock and ScrollView WPF | 更新日期: 2023-09-27 18:05:50

我做错了什么?

下面的代码可以工作:

<ScrollViewer x:Name="scrollChatMessages">
    <TextBlock x:Name="txtChatMessages" TextWrapping="Wrap"/>
</ScrollViewer>

但是,当我用设计器对它进行润色,使它看起来更整洁,不会占据整个网格时,ScrollView就不再滚动Scrollblock的内容了:

<ScrollViewer x:Name="scrollChatMessages" HorizontalAlignment="Left" Height="181" Margin="95,10,0,0" VerticalAlignment="Top" Width="300">
    <TextBlock x:Name="txtChatMessages" HorizontalAlignment="Left" TextWrapping="Wrap" VerticalAlignment="Top" Height="181" Width="300"/>
</ScrollViewer>
有人能给我解释一下这种行为吗?

提前感谢!

WPF ScrollView and TextBlock

如果没有一个好的最小化、完整和可验证的代码示例,就不可能肯定地说。但是您可以看到,Designer为这两个元素添加了一些新的属性值。特别是,ScrollViewerTextBlock被设置为具有相同的宽度和高度。

当然,包含的元素具有完全正确的尺寸,以适应ScrollViewer,没有必要滚动看到所有的。您需要从TextBlock中删除WidthHeight属性值。

我把它放在一个网格中解决了这个问题。

<Grid x:Name="gridChatMessages" HorizontalAlignment="Left" Height="181" Margin="95,10,0,0" VerticalAlignment="Top" Width="300">
    <ScrollViewer x:Name="scrollChatMessages">
        <TextBlock x:Name="txtChatMessages" TextWrapping="Wrap"/>
    </ScrollViewer>
</Grid>