Мне нужно панорамировать некоторые изображения при нажатии клавиши, но мой код не работает. Вот пример кода. По сути, я пытаюсь «следовать» прямоугольнику, пока он движется при нажатии клавиш A / S / D или W
public partial class MainWindow : Window
{
Point pan = new Point();
double factorPan = 10;
public MainWindow()
{
InitializeComponent();
canvas.HorizontalAlignment = System.Windows.HorizontalAlignment.Center;
canvas.VerticalAlignment = System.Windows.VerticalAlignment.Center;
// Сначала я создаю прямоугольник
Rectangle rec1 = new Rectangle();
rec1.Width = 50;
rec1.Height = 50;
rec1.Fill = new SolidColorBrush(Color.FromArgb(255, 255, 0, 0));
rec1.Visibility = System.Windows.Visibility.Visible;
canvas.Children.Add(rec1);
Canvas.SetBottom(rec1, -100);
Canvas.SetLeft(rec1, -100);
this.KeyDown += new KeyEventHandler(TeclaApretada);
}
void TeclaApretada(object sender, KeyEventArgs e)
{
switch (e.Key)
{
case Key.W:
pan.Y = pan.Y - factorPan;
break;
case Key.S:
pan.Y = pan.Y + factorPan;
break;
case Key.A:
pan.X = pan.X + factorPan;
break;
case Key.D:
pan.X = pan.X - factorPan;
break;
}
actualizarCanvas();
}
void actualizarCanvas()
{
canvas.Margin = new Thickness((pan.X), 0, 0, (pan.Y));
}
}