【问题标题】:Dynamic TextBlocks动态文本块
【发布时间】:2012-03-30 11:37:46
【问题描述】:

我正在编写一个 windows phone 应用程序,我想实现一个“点击文本以展开”功能。

我有一系列TextBlocks,目前看起来很像这样重复多次:

<TextBlock 
    Name="description" HorizontalAlignment="Left" VerticalAlignment="Top" 
    Margin="12,40,0,0" Width="444"
    TextWrapping="NoWrap" TextTrimming="WordEllipsis" />

[注意最后两个:TextWrapping="NoWrap"TextTrimming="WordEllipsis" 和没有设置Height。]

这显示了一行,当该行比屏幕长时,它以省略号结尾,这是完美的。目前,当用户点击TextBlock 时,我将TextWrapping 变为Wrap。这允许文本根据需要占用尽可能多的行(我想要的功能)。

问题是,当我将TextWrapping 转换为Wrap 时,它会扩展为它下方的TextBlock(请记住,我有一堆彼此相邻的)。此外,为了让它完全扩展,我最初从未设置Height,所以如果我稍后尝试访问它,我会得到NaN(并且ActualHeight永远不会从26.6更改,无论它扩展了多少行)

我正在寻找一种方法来动态地将其下方的TextBlocks 向下推送到完整显示文本所需的量,但我不知道“正确”的方法。 (类似的说明:硬编码Margin 是不理想的,特别是对于动态扩展文本,是否有我找不到的“RelativeLayout”(或类似的东西)?)

【问题讨论】:

    标签: c# xml windows-phone-7


    【解决方案1】:

    您是否尝试过将您的 TextBlocks 放在 StackPanel 中?这应该可以防止 TextBlock 对象重叠,您可以设置它们各自的边距值以确保所需的间距。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-23
      • 1970-01-01
      • 1970-01-01
      • 2015-12-07
      • 2023-03-09
      相关资源
      最近更新 更多