バグが発生していることを確認するための助けが必要です。
メトロ用の xaml で「TagCloud」を作成しています。複雑なことは何もありません。単純であるべきです。
TextBlock
コード ビハインドでオブジェクトを作成し、それらをオブジェクトの子に追加します。VariableSizedWrapGrid
それぞれTextBlock
が異なる高さと幅です。これは によって決定され、次に と を介してtestblock.Measure(size)
幅と高さを設定します。DesiredSize.Width
DesiredSize.Height
testblock.Measure(new Size(10000, 250));
dWidth = Double.Parse(testblock.DesiredSize.Width.ToString());
dHeight = Double.Parse(testblock.DesiredSize.Height.ToString());
問題は、TextBlock
オブジェクトが追加されると基本的にクリップされ、すべてが 1 つのサイズにロックされることです (基本的には の動作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);
}
は、異なるテキストと FontSize を持つConvertToTextBlock()
新しいを返しますTextBlock
VariableSizedWrapGrid
「可変サイズ」の子コントロールを実際に持つことはできません。おそらく私はこれをすべて間違って使用していますか?