【发布时间】:2012-10-25 23:26:39
【问题描述】:
我正在开发的一个应用程序从 Internet 检索信息并将其显示在应用程序内 StackPanel 内的一系列网格中,它本身嵌套在 ScrollViewer 内。
我的问题是:应用程序显示内容的简短摘要,其想法是单击内容会使 Grid 和 TextBlock 展开以显示其余内容,但是调整 TextBlock 的大小不会显示文本原来是因为太短而被切断了。 TextBlock 是在 c# 代码中动态创建的。
另外,但不是重要的:我不知道如何从 TextBlock 获得所需的全部高度以将其文本更改为,如果没有它,我必须将新大小设置为静态数字,我觉得这有损我的应用的用户体验。
谢谢, 杰斯
更新:这是用于生成TextBlock的代码:
this.message = new TextBlock()
{
VerticalAlignment = VerticalAlignment.Top,
TextWrapping = TextWrapping.Wrap,
MaxWidth = getWidth()
};
if(post.message != null) { message.Text = post.message; }
更新 2:这是创建 StackPanel (XAML) 的代码:
<ScrollViewer Grid.Column="1" Style="{StaticResource MainColumn}" VerticalScrollBarVisibility="Auto" SizeChanged="Feed_SizeChanged">
<StackPanel x:Name="Feed"/>
</ScrollViewer>
这是生成父 Grid 的地方:
Post grid = new Post() { Margin = new Thickness(0, 0, 0, 5) };
Feed.Children.Add(grid);
grid.layoutPost(oldCount, count--, post, Feed, this);
Grid的高度在layoutPost方法中设置,最终为75px,Post是一个继承Grid的类,定义在这里:
class Post : Windows.UI.Xaml.Controls.Grid
【问题讨论】:
标签: c# xaml microsoft-metro