C# Windows8的xaml转换
我正在画布上创建动态图像。我不想在单击按钮时平移和旋转它们。翻译工作很好,但当我旋转它时,会产生这样的错误 其他信息: 无法强制转换类型为的对象 'Windows.UI.Xaml.Media.TranslateTransform' 打字 'Windows.UI.Xaml.Media.RotateTransform'。 这是我的密码 图像i=新图像()//用于选择的全局变量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
您正在将您的
RenderTransform
设置为TranslateTransform
,然后尝试将其转换为RotateTransform
(如错误所述)。您可能应该使用一个CompositeTransform
,或者使用一个TransformGroup
,其中包含这两种转换类型。顺便说一句,关于堆栈溢出的17个问题,您应该注册一个帐户,并至少接受部分答案。更改image.RenderTransform=new TranslateTransform()
toimage.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 ??