元素随机放置在面板中

时间:2012-07-31 14:38:44

标签: wpf silverlight xaml windows-runtime

我正在寻找面板,它可以随机旋转放置集合中的每个项目。 如果它是开源的话会很棒!

我正在写WinRT,XAML,但我可以从SL / WPF移植它。

有谁知道这样的事情?

1 个答案:

答案 0 :(得分:1)

我建议使用常规ItemsControl Canvas作为ItemsPanelTemplate,并将Canvas.LeftCanvas.Top绑定到某处生成的随机值< / p>

<ItemsControl ItemsSource="{Binding MyCollection}">
    <!-- ItemsPanelTemplate -->
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <Canvas />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>

    <!-- ItemContainerStyle -->
    <ItemsControl.ItemContainerStyle>
        <Style>
            <Setter Property="Canvas.Left" 
                    Value="{Binding SomeRandomValue}" />
            <Setter Property="Canvas.Top" 
                    Value="{Binding SomeRandomValue}" />
        </Style>
    </ItemsControl.ItemContainerStyle>
</ItemsControl>

如何获得随机值取决于您。您可以将其设置为数据项的属性,从Converter返回随机值,创建一个为您提供随机值的静态资源等。