2011-10-24 2 views
0

키를 누를 때 일부 이미지를 이동해야하지만 코드가 작동하지 않습니다. 다음은 샘플 코드입니다. 기본적으로, 내가 뭘하려고하는 것은 A/S/D 또는 W 키C# 팬 구현 방법

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)); 
    } 
} 

답변

1

시도를 만들 // 누를 때 이동하면서 사각형을 "따라"입니다 Canvas에 고정 된 치수를 주거나 적어도 센터를 고정시키지 마십시오. 그렇지 않은 경우 포함 된 요소의 크기가 필요하며 여백이있는 사각형 만 사용됩니다.