【发布时间】: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