Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.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# 如何找到收缩和拉伸手势的x和y比例分量?_C#_Uwp_Uwp Xaml - Fatal编程技术网

C# 如何找到收缩和拉伸手势的x和y比例分量?

C# 如何找到收缩和拉伸手势的x和y比例分量?,c#,uwp,uwp-xaml,C#,Uwp,Uwp Xaml,我正在使用“收缩/拉伸”调整对象的大小。我惊讶地发现,操纵deltaroutedventargs有一个Scale属性。我想允许挤压/拉伸以与拉伸增加x和y手指位置相同的比例增加/减少宽度和高度。换句话说,如果拉伸是垂直的,我希望使我的对象更高,但不是更宽 如果不支持,是否可以确定捏/拉手势的起始和结束手指位置?您无法直接获取用于在x和y中设置相应比例值的scaleX和scaleY。但是您可以从PointerEntered和PointerExited事件中获取手指的起始和结束位置。您可以在这些事件

我正在使用“收缩/拉伸”调整对象的大小。我惊讶地发现,
操纵deltaroutedventargs
有一个
Scale
属性。我想允许挤压/拉伸以与拉伸增加x和y手指位置相同的比例增加/减少宽度和高度。换句话说,如果拉伸是垂直的,我希望使我的对象更高,但不是更宽


如果不支持,是否可以确定捏/拉手势的起始和结束手指位置?

您无法直接获取用于在x和y中设置相应比例值的scaleX和scaleY。但是您可以从
PointerEntered
PointerExited
事件中获取手指的起始和结束位置。您可以在这些事件处理程序中获得要点

private void MyImage_PointerExited(object sender, PointerRoutedEventArgs e)
{
    var point= e.GetCurrentPoint(sender as Image).Position;
}

private void MyImage_PointerEntered(object sender, PointerRoutedEventArgs e)
{
    var point = e.GetCurrentPoint(sender as Image).Position;
}
但是位置值基于UIElement左上角(0,0)。所以你应该设置一个固定的坐标。您可以尝试使用根面板
PointerEntered
PointerExited
事件,该事件包括调整大小的对象,以获取收缩/拉伸手势的位置

//MyGrid is the root panel and includes the Image which would be resized.
private void MyGrid_PointerEntered(object sender, PointerRoutedEventArgs e)
{
    Debug.WriteLine("EN>>>"+e.GetCurrentPoint(MyGrid).Position);
}

private void MyGrid_PointerExited(object sender, PointerRoutedEventArgs e)
{
    Debug.WriteLine("ET>>>"+e.GetCurrentPoint(MyGrid).Position);
}

也许你可以检查一下这个手势的意思?你能说得更具体一点吗,小Y312?我查看了文档,并在尝试调整大小时跟踪了它的值更改,但没有看到任何可以使用的内容。但是我可能遗漏了什么。Scale属性是一个向量;
Scale.X
.Y
不是你要找的吗?如果没有,请尝试使用
e.ManipulationOrigin
e.TotalManipulation.Translation
from
ManipulationCompleted
event.Xiaoy312您是说UWP,
ManipulationDeltaRoutedEventArgs
<根据doc(和我的观察结果),代码>增量刻度是一个浮点而不是一个向量。您是否在考虑另一个
Scale
属性?至于
操作已完成
,我正在调整对象的大小,因为他们正在挤压,所以我真的不能等到手势完成后再给他们反馈。Breeze,非常感谢你的回答。不过,恐怕它和Xaioy312的问题一样。我试图通过调整他们正在操纵的对象的大小,在挤压/拉伸过程中提供视觉反馈。“PointerExited”事件只有在整个操作完成后才会发生,此时为时已晚。我一直在寻找在每次
操作delta
事件中x和y的变化,以便在他们挤压/拉伸时调整“手指下”的大小。我一直在寻找这样的应用程序,但没有成功。我开始怀疑这是否可能。目前,您在操作元素时无法获得scaleX和ScaleY,您可以向UserVoice网站提交此功能请求:。谢谢,Breeze。我按照你的建议提交了请求。知道继续尝试是浪费时间对我很有帮助。如果可以的话,我会投票赞成你的评论。