C# 影像翻译回归原点
我有一个问题,互联网搜索没有提供任何帮助。 我试图在WP8.1上用C语言翻译一个图像 因此我使用了translate变换。在操纵增量事件中。 它可能会起作用,因为我实际上可以移动它几英寸,但它会在移动后返回原点。即使我把手指放在屏幕上 这个问题我已经解决了三天了,我无法解决。 如果你们能帮上忙,我们将不胜感激 代码见附件C# 影像翻译回归原点,c#,image-processing,windows-phone-8.1,C#,Image Processing,Windows Phone 8.1,我有一个问题,互联网搜索没有提供任何帮助。 我试图在WP8.1上用C语言翻译一个图像 因此我使用了translate变换。在操纵增量事件中。 它可能会起作用,因为我实际上可以移动它几英寸,但它会在移动后返回原点。即使我把手指放在屏幕上 这个问题我已经解决了三天了,我无法解决。 如果你们能帮上忙,我们将不胜感激 代码见附件 void Isetta_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
void Isetta_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
//Actually moving the UI Element
TranslateTransform tt = new TranslateTransform();
tt.X += e.Delta.Translation.X;
tt.Y += e.Delta.Translation.Y;
Isetta.RenderTransform = tt;
//Isetta.Height *= e.Delta.Scale;
//Isetta.Width *= e.Delta.Scale;
}
您正在为每一帧创建一个新的变换,并丢弃旧信息。您应该只创建一次转换并重用它 您可以检查Isetta.RenderTransform是否已经是TranslateTransform,如果不是,则只替换它。比如:
TranslateTransform tt = Isetta.RenderTransform as TranslateTransform;
if (tt == null)
{
tt = new TranslateTransform();
Isetta.RenderTransform = tt;
}
tt.X += e.Delta.Translation.X;
tt.Y += e.Delta.Translation.Y;
或者只需在Xaml中或初始化页面时设置一次转换,并使用相同的引用。这就是MSDN的功能。你就是那个人,非常感谢你。解决方案提出后,我感觉自己就像一个前盲人第一次看到光明。