这当然是可行的。本质上,您将在画布上放置一个图像,并且您将处理该画布上的 MouseMove 事件。当鼠标从一侧移动到另一侧时,您将对图像应用平移以将其从一侧移动到另一侧。
以下代码应该可以帮助您入门:
将带有图像的画布添加到 MainPage.xaml(注意 MouseMove/Enter/Leave 事件)
<Canvas x:Name="LayoutCanvas" MouseMove="LayoutCanvas_MouseMove" MouseEnter="LayoutCanvas_MouseEnter" Height="200" Width="200">
<Image x:Name="imgToMove" Source="myimage.png" />
</Canvas>
在后面的代码中,添加 MouseMove/Enter/Leave 事件
Point lastMousePos = new Point();
Point currentMousePos = new Point();
double amountToMove = 1;
private void LayoutCanvas_MouseMove(object sender, MouseEventArgs e)
{
currentMousePos = e.GetPosition(LayoutCanvas);
if (lastMousePos.X > currentMousePos.X)
{
amountToMove--;
}
else
{
amountToMove++;
}
imgToMove.SetValue(Canvas.LeftProperty, amountToMove);
lastMousePos = currentMousePos;
}
private void LayoutCanvas_MouseEnter(object sender, MouseEventArgs e)
{
lastMousePos = e.GetPosition(LayoutCanvas);
}
private void LayoutCanvas_MouseLeave(object sender, MouseEventArgs e)
{
imgToMove.SetValue(Canvas.LeftProperty, (double)0);
}
你完成了。现在,当您将鼠标移到图像上时,图像将从左向右或从右向左平移。当您离开图像时,它会回到原来的位置。