c# - 动态文本 block

标签 c# xml windows-phone-7

我正在编写一个 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”(或类似的东西) ?)

最佳答案

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

关于c# - 动态文本 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9936625/

相关文章:

c# - 在 N 字后换行拆分字符串

c# - 在 C# 中处理竞争条件

android - 线性布局不能填满整个屏幕

c# - 锁屏下的WP8定时器应用

windows-phone-7 - WP7 : EntitySet loading. 一对多关系 - 复合主键大小写

c# - 我可以在哪里放置静态字符串?

c# - 使用 SSH.NET 上传到 SFTP 服务器失败,并出现 SftpPathNotFoundException : 'The system cannot find the path specified.'

c# - 通过引用传递只是一种遗产吗?

xml - 删除文件中的 XML 字符串

javascript - 使用 jQuery 解析 XML 并附加到 HTML 表中