动态TextBlocks

pse*_*udo 2 c# xml windows-phone-7

我正在写一个Windows手机应用程序,我想实现"点击文本扩展"功能.

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

<TextBlock 
    Name="description" HorizontalAlignment="Left" VerticalAlignment="Top" 
    Margin="12,40,0,0" Width="444"
    TextWrapping="NoWrap" TextTrimming="WordEllipsis" />
Run Code Online (Sandbox Code Playgroud)

[注意最后两个:TextWrapping="NoWrap" TextTrimming="WordEllipsis"并且没有Height被设置.]

这显示了一行,当行长于屏幕时,它以省略号结束,这是完美的.目前,当用户点击TextBlock我转TextWrappingWrap.这允许文本占用所需的行数(我想要的功能).

问题是,当我打开TextWrappingWrap它膨胀到TextBlock它下面(请记住,我旁边挤满彼此一堆这些).另外,为了让它完全展开,我从来没有设置过Height,所以如果我稍后尝试访问它,我会得到NaN(并且ActualHeight永远不会从26.6更改,无论它扩展到多少行)

我正在寻找一种方法来动态地将其TextBlocks低于显示文本整体所需的数量,但我不知道"正确"的方法.(在类似的说明:硬编码Margin是不理想的,特别是对于动态扩展文本,是否有一个" RelativeLayout"(或类似的东西),我一直无法找到?)

小智 5

您是否尝试将TextBlock放在StackPanel中?这样可以防止TextBlock对象重叠,您可以设置各自的边距值以确保所需的间距.