では、さまざまなオプションを試すために使用できるプロトタイプです:
<Grid>
<Grid.Resources>
<local:Range x:Key="sampleData" Minimum="1" Maximum="900"/>
</Grid.Resources>
<ItemsControl ItemsSource="{StaticResource sampleData}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Rows="30" Columns="30"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" FontSize="8">
<TextBlock.LayoutTransform>
<RotateTransform Angle="30"/>
</TextBlock.LayoutTransform>
</TextBlock>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
とデータ・ジェネレータ:
class Range : List<int>, ISupportInitialize
{
public int Minimum { get; set; }
public int Maximum { get; set; }
public void BeginInit() { }
public void EndInit()
{
for (int i = Minimum; i <= Maximum; i++) Add(i);
}
}
と左上隅には、次のようになります。
レイアウトをトリガーするには、th私のマシン上では、ちょっと遅くても使える。次に、他のコンテナ、他のトランスフォーム、レイアウトとレンダリングの変換などをテストして、それらの違いを確認することができます。