あなたはVS2012、C#と言っているので、Elipse
ファイルSystem.Windows.Forms
- >新しいプロジェクト - > WPFアプリケーションを実際に行ったという推測を危険にさらすつもりです(楕円コントロール(プリミティブ)がバットから離れているため)。
フォーカスを得ることができないためElipse
、キーの押下が興味深い場合を判断する必要があります。これを行うには、ウィンドウにハンドラーを追加します。XAML のサンプルを次に示します。
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" KeyDown="Window_KeyDown">
<Grid>
<Ellipse x:Name="elipsy" Fill="#FFF4F4F5" HorizontalAlignment="Left" Height="100" Stroke="Black" VerticalAlignment="Top" Width="100" Canvas.Left="241" Canvas.Top="119"/>
</Grid>
</Window>
ハンドラー ( Window_KeyDown
) で、次のことができます。
private void Window_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.W)
{
Canvas.SetTop(elipsy, Canvas.GetTop(elipsy) - 1);
}
else if (e.Key == Key.A)
{
Canvas.SetLeft(elipsy, Canvas.GetLeft(elipsy) - 1);
}
else if (e.Key == Key.S)
{
Canvas.SetTop(elipsy, Canvas.GetTop(elipsy) + 1);
}
else if (e.Key == Key.D)
{
Canvas.SetLeft(elipsy, Canvas.GetLeft(elipsy) + 1);
}
}
これにより、正しい軌道に乗ることができます。あなたが本当にWinFormsに大声を出したいのであれば、そこで同様の解決策を見つけることができるはずです.