uwp 获取当前点图像
uwp GetcurrentPoint image
我正在编写移动图像的代码。有用。
我需要移动后的绝对 x, y
我怎么才能得到它们?
谢谢你
我的代码只给我相对点。 :
private static void MyImage_PointerMoved(object sender, PointerRoutedEventArgs e)
{
Pointer ptr = e.Pointer;
if (ptr.PointerDeviceType == Windows.Devices.Input.PointerDeviceType.Mouse)
{
// To get mouse state, we need extended pointer details.
// We get the pointer info through the getCurrentPoint method
// of the event argument.
Windows.UI.Input.PointerPoint ptrPt = e.GetCurrentPoint(micky.MyImage);
var transform = (micky.MyImage.RenderTransform as CompositeTransform);
double imagex = e.GetCurrentPoint(micky.MyImage).Position.X;
double imageY = e.GetCurrentPoint(micky.MyImage).Position.Y;
不确定你想做什么。如果你只是想获取图像的绝对位置。您可以使用 TransformToVisual
和 TransformPoint
方法。
<Image x:Name="pic" Source="Assets/1.jpg"/>
var trans = pic.TransformToVisual(Window.Current.Content);
Point position = trans.TransformPoint(new Point(0, 0));
但是我检查了你的代码,我猜你想移动你的图像。如果是这样,使用 Manipulation
事件应该可以满足您的目标。
<Image x:Name="pic" Source="Assets/1.jpg" ManipulationMode="All" ManipulationDelta="Image_ManipulationDelta" Height="100" Width="200">
<Image.RenderTransform>
<TranslateTransform x:Name="translateTransform"></TranslateTransform>
</Image.RenderTransform>
</Image>
private void Image_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
translateTransform.X += e.Delta.Translation.X;
translateTransform.Y += e.Delta.Translation.Y;
System.Diagnostics.Debug.WriteLine("Manipulation: X: " + translateTransform.X + ", Y: " + translateTransform.Y);
}
我正在编写移动图像的代码。有用。 我需要移动后的绝对 x, y 我怎么才能得到它们? 谢谢你 我的代码只给我相对点。 :
private static void MyImage_PointerMoved(object sender, PointerRoutedEventArgs e)
{
Pointer ptr = e.Pointer;
if (ptr.PointerDeviceType == Windows.Devices.Input.PointerDeviceType.Mouse)
{
// To get mouse state, we need extended pointer details.
// We get the pointer info through the getCurrentPoint method
// of the event argument.
Windows.UI.Input.PointerPoint ptrPt = e.GetCurrentPoint(micky.MyImage);
var transform = (micky.MyImage.RenderTransform as CompositeTransform);
double imagex = e.GetCurrentPoint(micky.MyImage).Position.X;
double imageY = e.GetCurrentPoint(micky.MyImage).Position.Y;
不确定你想做什么。如果你只是想获取图像的绝对位置。您可以使用 TransformToVisual
和 TransformPoint
方法。
<Image x:Name="pic" Source="Assets/1.jpg"/>
var trans = pic.TransformToVisual(Window.Current.Content);
Point position = trans.TransformPoint(new Point(0, 0));
但是我检查了你的代码,我猜你想移动你的图像。如果是这样,使用 Manipulation
事件应该可以满足您的目标。
<Image x:Name="pic" Source="Assets/1.jpg" ManipulationMode="All" ManipulationDelta="Image_ManipulationDelta" Height="100" Width="200">
<Image.RenderTransform>
<TranslateTransform x:Name="translateTransform"></TranslateTransform>
</Image.RenderTransform>
</Image>
private void Image_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
translateTransform.X += e.Delta.Translation.X;
translateTransform.Y += e.Delta.Translation.Y;
System.Diagnostics.Debug.WriteLine("Manipulation: X: " + translateTransform.X + ", Y: " + translateTransform.Y);
}