Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#WPF在短时间内按下键时移动矩形_C#_Wpf_Xaml - Fatal编程技术网

C#WPF在短时间内按下键时移动矩形

C#WPF在短时间内按下键时移动矩形,c#,wpf,xaml,C#,Wpf,Xaml,我在特定方向上按住左键、右键、上键或下键时移动一个矩形 当我按住键时,矩形会停止一小段时间。但是如果我想让它自由移动而不需要短暂的停顿,我该怎么办呢 MainWindow.xaml <Window KeyDown="myTestKey"> <Canvas> <Rectangle Name="Movement" Canvas.Top="50" Canvas.Left="50" Height="100" Width="100" Fill="Aquamarine"

我在特定方向上按住左键、右键、上键或下键时移动一个矩形

当我按住键时,矩形会停止一小段时间。但是如果我想让它自由移动而不需要短暂的停顿,我该怎么办呢

MainWindow.xaml

<Window KeyDown="myTestKey">
<Canvas>
    <Rectangle Name="Movement" Canvas.Top="50" Canvas.Left="50" Height="100" Width="100" Fill="Aquamarine"/>
</Canvas>
</Window>

控制初始按键和后续连续重复检测之间延迟的按键延迟设置是Windows设置。请参阅以进行讨论

定时器
事件中执行移动,在
按键
事件中启用移动,在
按键
事件中禁用移动

private void myTestKey(object sender, KeyEventArgs e)
    {
        if (e.Key == Key.Left) Canvas.SetLeft(Movement, Canvas.GetLeft(Movement) - 1);
        if (e.Key == Key.Up) Canvas.SetTop(Movement, Canvas.GetTop(Movement) - 1);
        if (e.Key == Key.Down) Canvas.SetTop(Movement, Canvas.GetTop(Movement) + 1);
        if (e.Key == Key.Right) Canvas.SetLeft(Movement, Canvas.GetLeft(Movement) + 1);
    }