gpt4 book ai didi

c# - 在 variablesizedwrapgrid 代码后面设置 TextBlock 的宽度和高度无法正确显示

转载 作者:行者123 更新时间:2023-11-30 14:35:54 26 4
gpt4 key购买 nike

我需要一些帮助来确认我看到了错误。

我正在用 xaml 为 metro 创建一个“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 对象时,它们基本上会被剪切,它们都锁定到一个单一的大小(基本上是 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() 返回一个具有不同文本和 FontSize 的新 TextBlock

我无法让 VariableSizedWrapGrid 真正拥有一个“可变大小”的子控件。也许我只是用错了?

最佳答案

尝试这样的事情:

 <GroupStyle.Panel> <ItemsPanelTemplate > <VariableSizedWrapGrid x:Name="MyGrid" Orientation="Horizontal" MaximumRowsOrColumns="7"

ItemWidth="{Binding DataContext.ItemTemplateWidth, ElementName=pageRoot}"

ItemHeight="{Binding DataContext.ItemTemplateHeight, ElementName=pageRoot}"

></VariableSizedWrapGrid> </ItemsPanelTemplate> </GroupStyle.Panel>

也可以考虑阅读:

  1. http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2012/09/14/windows-8-xaml-and-displaying-multiple-sized-items.aspx
  2. http://www.acnenomor.com/3756161p1/how-to-display-gridview-items-with-variable-width-in-window-8

关于c# - 在 variablesizedwrapgrid 代码后面设置 TextBlock 的宽度和高度无法正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11388746/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com