Edit: Я просто заметил, что этот вопрос о «Универсальное приложение», этот пример для WinForms, но это может быть полезно для нахождения ответа на Универсальной или UWP приложений ...
Предполагая, что у вас уже есть два обработчика событий на кнопки для перемещения в обратном направлении (void NavigateBack(object sender, EventArgs e)
) и вперед (void NavigateForward(object sender, EventArgs e)
)
Сначала добавьте этот фрагмент в свой код формы:
private void HandlePreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
switch (e.KeyCode)
{
case Keys.XButton1:
NavigateBack(sender, e); // call the back button event handler
break;
case Keys.XButton2:
NavigateForward(sender, e); // call the forward button event handler
break;
}
}
private void HandleMouseDown(object sender, MouseEventArgs e)
{
switch (e.Button)
{
case MouseButtons.XButton1:
NavigateBack(sender, e); // call the back button event handler
break;
case MouseButtons.XButton2:
NavigateForward(sender, e); // call the forward button event handler
break;
}
}
Затем перейдите к представлению дизайнера, просмотрите все основные элементы управления в форме и подключите события PreviewKeyDown и MouseDown к соответствующим методам.
Лучше (на будущее) способом было бы написать код рекурсивно Подвод события, как это:
private void HookupNavigationButtons(Control ctrl)
{
for (int t = ctrl.Controls.Count - 1; t >= 0; t--)
{
Control c = ctrl.Controls[t];
c.PreviewKeyDown -= HandlePreviewKeyDown;
c.PreviewKeyDown += HandlePreviewKeyDown;
c.MouseDown -= HandleMouseDown;
c.MouseDown += HandleMouseDown;
HookupNavigationButtons(c);
}
}
И называют этот метод где-то после InitializeComponent();
с HookupNavigationButtons(this);
Если вы хотите только мышь события, которые вы можете оставить без клавиатуры, но есть несколько клавиатур, которые также имеют эти кнопки навигации.
Благодарим за ответ и ссылку. К сожалению, ссылка предназначена для приложений UWP, и я попробовал код, чтобы получить обработчик «назад запрошен», и он недоступен для 8.1 приложений. – zachboy82