我需要一些帮助来确认我看到了一个错误。
我正在为 Metro 的 xaml 创建一个“TagCloud”。没什么复杂的,应该很简单。
我在后面的代码中创建TextBlock对象,然后将它们添加到VariableSizedWrapGrid
每个TextBlock都有不同的高度和宽度 - 这由 确定,然后通过和testblock.Measure(size)设置宽度和高度DesiredSize.WidthDesiredSize.Height
testblock.Measure(new Size(10000, 250));
dWidth = Double.Parse(testblock.DesiredSize.Width.ToString());
dHeight = Double.Parse(testblock.DesiredSize.Height.ToString());
问题是,当TextBlock添加对象时,它们基本上是剪辑的,它们都锁定到一个单一的大小(基本上是 a 的行为WrapGrid)。本质上VariableSizedWrapGrid是拒绝在其子元素中允许可变高度和宽度?我不知道为什么它会剪辑所有内容。
<VariableSizedWrapGrid x:Name="vswg" Orientation="Horizontal" Width="Auto" Height="200" Grid.Column="1"/>
IEnumerable<TextBlock> textBlocks =
(from cloudItem in cloudItems
select ConvertToTextBlock(cloudItem, fontWeight));
vswg.Children.Clear();
foreach (TextBlock t in textBlocks)
{
vswg.Children.Add(t);
}
ConvertToTextBlock()返回TextBlock具有不同文本和 FontSize的新
我无法VariableSizedWrapGrid真正拥有“可变大小”的子控件。也许我只是使用这一切都错了?