图像翻译 returns 到原点
Imaging Translation returns to origin
我有一个问题,互联网搜索没有提供任何帮助。
我正在尝试用 C#(在 WP8.1 上)翻译图像。
因此我使用了翻译transform()。在 ManipulationDelta 事件中。
它可能会起作用,因为我实际上可以将它移动几英寸,但它 returns 刚好到原点。 (即使我将手指放在屏幕上)
我已经遇到这个问题 3 天了,我无法修复它。
如果你们能提供任何帮助,我们将不胜感激。
(代码附后)
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 中或在初始化页面时设置一次转换,并使用相同的引用。这就是 Using manipulation events section in MSDN's Quickstart: Touch input 所做的。
我有一个问题,互联网搜索没有提供任何帮助。 我正在尝试用 C#(在 WP8.1 上)翻译图像。
因此我使用了翻译transform()。在 ManipulationDelta 事件中。 它可能会起作用,因为我实际上可以将它移动几英寸,但它 returns 刚好到原点。 (即使我将手指放在屏幕上)
我已经遇到这个问题 3 天了,我无法修复它。 如果你们能提供任何帮助,我们将不胜感激。
(代码附后)
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 中或在初始化页面时设置一次转换,并使用相同的引用。这就是 Using manipulation events section in MSDN's Quickstart: Touch input 所做的。