【问题标题】:WPF ScrollView and TextBlockWPF 滚动视图和文本块
【发布时间】:2016-09-06 02:24:42
【问题描述】:

我做错了什么?

以下代码有效:

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

但是一旦我与设计器进行了修改,使其看起来更整洁并且不会占据整个 Grid,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>

有人可以向我解释这种行为吗?

提前致谢!

【问题讨论】:

  • 我不明白你的问题
  • @Sajeetharan 在第一个代码中,ScrollView 能够滚动,因此从 TextBlock 中掉出的所有内容都可以通过滚动看到。使用第二个代码,所有内容都放在我想要的位置,但是滚动条突然不再对应 TextBlock?

标签: c# wpf xaml scrollview textblock


【解决方案1】:

没有好的Minimal, Complete, and Verifiable code example 是不可能确定的。但是您可以看到 Designer 为这两个元素添加了一堆新的属性值。特别是,ScrollViewerTextBlock 已设置为具有完全相同的宽度和高度。

自然,包含的元素具有完全正确的尺寸以适合ScrollViewer,因此无需滚动即可查看所有内容。您需要从TextBlock 中删除WidthHeight 属性值。

【讨论】:

  • 现在我对我的解决方案为何有效有了更好的理解!非常感谢你!尽管我的解决方案有效,但您的回答让我获得了更广泛的知识,因此我会将您的解决方案标记为答案。 :-)
【解决方案2】:

我通过将其放置在 Grid 中来解决它。

<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>

【讨论】:

    猜你喜欢
    • 2013-02-03
    • 2014-04-20
    • 2010-12-22
    • 2016-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多