I'm trying to register multiple keys with a WPF PreviewKeyDown event.
Window_KeyDown(object sender, KeyEventArgs e)
If I press W I register W. if I then press E at the same time I register W and E. So fare so good.
But if I release one of the keys the event doesn't refire. However I want to keep register the KeyDown event to be able to register the other key which is still being pressed.
I have tried to keep it in a while loop and check for all keys being released before ending the while loop, but that is not a solution as it blocks the function.
public void Window_PreviewKeyDown(object sender, KeyEventArgs e)
{
for (int i = 0; i < 255; i++)
{
int state = GetAsyncKeyState(i);
if (state != 0)
{
if (i == 87) // W
{
// collect the key press
}
if (i == 69) //E
{
// collect the key press
}
}
}
}