C# Windows8的xaml转换

C# Windows8的xaml转换,c#,xaml,windows-store-apps,windows-8.1,C#,Xaml,Windows Store Apps,Windows 8.1,我正在画布上创建动态图像。我不想在单击按钮时平移和旋转它们。翻译工作很好,但当我旋转它时,会产生这样的错误 其他信息: 无法强制转换类型为的对象 'Windows.UI.Xaml.Media.TranslateTransform' 打字 'Windows.UI.Xaml.Media.RotateTransform'。 这是我的密码 图像i=新图像()//用于选择的全局变量 您正在将您的RenderTransform设置为TranslateTransform,然后尝试将其转换为RotateTran

我正在画布上创建动态图像。我不想在单击按钮时平移和旋转它们。翻译工作很好,但当我旋转它时,会产生这样的错误 其他信息: 无法强制转换类型为的对象 'Windows.UI.Xaml.Media.TranslateTransform' 打字 'Windows.UI.Xaml.Media.RotateTransform'。 这是我的密码

图像i=新图像()//用于选择的全局变量


您正在将您的
RenderTransform
设置为
TranslateTransform
,然后尝试将其转换为
RotateTransform
(如错误所述)。您可能应该使用一个
CompositeTransform
,或者使用一个
TransformGroup
,其中包含这两种转换类型。

顺便说一句,关于堆栈溢出的17个问题,您应该注册一个帐户,并至少接受部分答案。更改
image.RenderTransform=new TranslateTransform()
to
image.RenderTransform=new CompositeTransform(),然后将
(TranslateTransform)
(RotateTransform)
强制转换替换为
(CompositeTransform)
强制转换。然后将
Angle
属性替换为
Rotation
,将
X/Y
属性替换为
TranslateX/TranslateY
,因为它们分别类似于
CompositeTransform
类上的
RotateTransform
TranslateTransform
属性。
 private void btn_Click(object sender, RoutedEventArgs e)  // For creating images 
        {
            int i = 0;

            Image image = new Image();
            string url = "ms-appx:///Assets/1.png";
            BitmapImage bm = new BitmapImage();

            bm.UriSource = new Uri(url, UriKind.Absolute);
            image.Source = bm;
            image.Height = Double.NaN;
            image.Width = Double.NaN;
            image.ManipulationMode = ManipulationModes.TranslateX | ManipulationModes.TranslateY | ManipulationModes.Rotate;
            image.RenderTransform = new TranslateTransform();
            image.Name = "img" + i;
            image.Tapped += select;
            image.ManipulationDelta += DragableItem_ManipulationDelta;
            DrawCanvas.Children.Add(image);

            i++;   
        }

private void select(object sender, TappedRoutedEventArgs e)    // selecting of image
        {
            i = (Image)sender;
        }



private void rotate_Click(object sender, RoutedEventArgs e)        //rotating
        {
            if (i != null)
            {

                var translate = (RotateTransform)i.RenderTransform;
                translate.CenterY = 0;
                translate.CenterX = 0;
                translate.Angle = 45;
                i.RenderTransform = translate;
            }
        }



    void DragableItem_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)   // translating code 
            {
                var name = (Image)sender;

                var translate = (TranslateTransform)name.RenderTransform;
                translate.X += e.Delta.Translation.X;
    translate.Y += e.Delta.Translation.Y;
}



need help stuck here for a long time ??