Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Xaml中添加图像集合_C#_.net_Image_Xaml_Windows Store Apps - Fatal编程技术网

C# 在Xaml中添加图像集合

C# 在Xaml中添加图像集合,c#,.net,image,xaml,windows-store-apps,C#,.net,Image,Xaml,Windows Store Apps,我想在Windows应用商店的XAML页面上绘制图像。 主要目标是: 将图像(例如,花叶)添加到中心的圆圈中,如下所示: 我有一个简单的解决方案,但它是非常多余的 <Image Height="200" Width="200" Source="{Binding ActualImage.NormalUri}"> <Image.RenderTransform> <RotateTransform Angle="12"></Rotate

我想在Windows应用商店的XAML页面上绘制图像。 主要目标是:

将图像(例如,花叶)添加到中心的圆圈中,如下所示:

我有一个简单的解决方案,但它是非常多余的

<Image Height="200" Width="200" Source="{Binding ActualImage.NormalUri}">
    <Image.RenderTransform>
        <RotateTransform Angle="12"></RotateTransform>
    </Image.RenderTransform>
</Image> 

... // And 28 other like these

<Image Height="200" Width="200" Source="{Binding ActualImage.NormalUri}">
    <Image.RenderTransform>
        <RotateTransform Angle="360"></RotateTransform>
    </Image.RenderTransform>
</Image>

... // 还有28个像这样的

如何使用图像集合的绑定来实现这一点?我应该使用什么XAML控件?

使用从
ItemsControl
继承的自定义类。然后可以替代必要的功能,例如用于确定每个项目之间旋转的角度的功能。我认为您可能希望为此使用此
PrepareContainerForItemOverride

需要注意的一点是,您必须定义一个新的
ItemsPanel
。默认设置为
堆叠面板
,该面板将不起作用。您可能希望使用类似于
画布的东西,它允许您显式地在其中定位项目。

Nate Diamond的解决方案更好更好,但我从代码隐藏中解决了它,以获得更简单的方法:

foreach (Petal petalObject in MainPageViewModel.Petals)
    {
        var petalImage = new Image
        {
            Height = petalObject.Height,
            Width = petalObject.Width,
            RenderTransform = new RotateTransform() {Angle = petalObject.Angle},
            Source = new BitmapImage(new Uri(petalObject.NormalUri)),
        };

        PetalsGrid.Children.Add(petalImage);
    }