Нечетное взаимодействие объекта с кнопками, свойство focusable делает что-то странное - PullRequest
1 голос
/ 03 апреля 2012
 private void Page_KeyDown(object sender, KeyEventArgs e)
        {
           if (e.Key == Key.Right)
            {
                if (shipPosition < right)
                {
                    x = x + 10;
                    shipPosition = shipPosition + 10;
                    ship.Margin = new Thickness(shipPosition, y, 0, 0);
                }
            }
         }

   XAML - KeyDown="Page_KeyDown"

У меня есть прямоугольник с именем ship, и выше - функция для его перемещения, которая будет выполняться при нажатии клавиши со стрелкой вправо или влево.По какой-то причине это не работает."KeyDown =" Page_KeyDown "" - это xaml, который связывает нажатие кнопки с событием.Есть еще одна сетка, содержащая кнопки, которые перемещаются каждый раз, когда срабатывает таймер, и когда я нажимаю на кнопку и выделяю ее, а затем нажимаю клавиши со стрелками, корабль начинает двигаться с измененной подсвеченной кнопкой.Кто-нибудь имеет представление о том, что происходит?

Обновление: Я удалил свойство is focusable на кнопках, и это затем остановило движение корабля все вместе.Поэтому я думаю, что это связано с изменением фокуса на кнопках.

1 Ответ

2 голосов
/ 03 апреля 2012

Попробуйте это:

Keyboard.AddKeyDownHandler(this, Page_KeyDown);

Поместите его в соответствующий метод управления (конструктор, инициализированный, ...)

public MainWindow()
{
    InitializeComponent();
    Keyboard.AddKeyDownHandler(this, Page_KeyDown);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...