Это, безусловно, выполнимо. По сути, у вас будет изображение, расположенное на холсте, и вы будете обрабатывать события 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 events
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);
}
И все готово. Теперь, когда вы наводите указатель мыши на изображение, оно будет переведено слева направо или справа налево. Когда вы оставите изображение, оно вернется в исходное положение.