Форум программистов, компьютерный форум CyberForum.ru

Программирование Windows Phone

Войти
Регистрация
Восстановить пароль
 
DMF
6 / 6 / 0
Регистрация: 16.04.2015
Сообщений: 106
#1

Навигация в меню (ContextMenu) клавишами устройства (C#, WinCE5.0, .NET3.5) - Windows Phone

07.08.2015, 16:01. Просмотров 312. Ответов 12
Метки нет (Все метки)

Доброго времени суток!
Есть меню ContextMenu, есть хардверные клавиши - стреки и Enter.
Проблема в следующем:
По нажатии клавиши появляется меню, по нему можно перемещаться вверх-вниз - пункты меню подсвечиваются, но...
Ничего более не работает. Надо что бы по нажатию стрелки вправо происходил выбор выделенного пункта меню, как будто мы на него нажали. в крайнем случае, можно осуществлять выбор клавишей Enter, т.к. меню является модальным и не закрывается по нажатии стрелки вправо.
Как это решить или хотя бы в какую сторону копать? Неделю с этим разобраться не могу...
Заранее благодарю за адекватные ответы.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
krupa
106 / 106 / 27
Регистрация: 13.12.2010
Сообщений: 407
07.08.2015, 16:14     Навигация в меню (ContextMenu) клавишами устройства (C#, WinCE5.0, .NET3.5) #2
вопрос скорее не по теме:

а я так понимаю, что сейчас старьё дикое.
можете мне сказать, где это используется?
DMF
6 / 6 / 0
Регистрация: 16.04.2015
Сообщений: 106
10.08.2015, 08:05  [ТС]     Навигация в меню (ContextMenu) клавишами устройства (C#, WinCE5.0, .NET3.5) #3
Терминалы сбора данных.
А по теме можете чем помочь? Старьё, ведь, многим известно быть должно...
xinvestoriginal
0 / 0 / 0
Регистрация: 29.12.2013
Сообщений: 27
10.08.2015, 22:28     Навигация в меню (ContextMenu) клавишами устройства (C#, WinCE5.0, .NET3.5) #4
попробуйте посмотреть список событий ContextMenu.Events, не знаю насколько совместимо с мобильным фреймворком, если свойство есть, попробуйте добавить обработчик нужной клавиши.
DMF
6 / 6 / 0
Регистрация: 16.04.2015
Сообщений: 106
11.08.2015, 08:48  [ТС]     Навигация в меню (ContextMenu) клавишами устройства (C#, WinCE5.0, .NET3.5) #5
xinvestoriginal, в том-то и беда, у ContextMenu только событие Popup, а у MenuItem - Popup и Click. Свойства Event нет ни у одного...
Может есть возможность как-то копировать элемент и привязать событие (подцепиться) к внутреннему событию? Всё-равно ведь, выделение (подсветка) пункта меню происходит по внутреннему событию элемента (стартует его прорисовка).

Добавлено через 4 минуты
Может наследованием? Только не хочет ContextMenu наследоваться...

Добавлено через 1 минуту
Вообще, при наследовании можно переписывать внутренние методы и/или делать их внешними?
xinvestoriginal
0 / 0 / 0
Регистрация: 29.12.2013
Сообщений: 27
11.08.2015, 08:50     Навигация в меню (ContextMenu) клавишами устройства (C#, WinCE5.0, .NET3.5) #6
возможно проще создать собственное окно, с итемсами и уже в нём делать навигацию как удобно.
DMF
6 / 6 / 0
Регистрация: 16.04.2015
Сообщений: 106
11.08.2015, 08:57  [ТС]     Навигация в меню (ContextMenu) клавишами устройства (C#, WinCE5.0, .NET3.5) #7
Цитата Сообщение от xinvestoriginal Посмотреть сообщение
создать собственное окно
Как?
Цитата Сообщение от xinvestoriginal Посмотреть сообщение
посмотреть список событий ContextMenu.Events
На строку
C#
1
string strE = cMenu.contextMenu1.Events.ToString();
студия ответила:
Доступ к защищенному члену "System.ComponentModel.Component.Events" через квалификатор типа "System.Windows.Forms.ContextMenu" невозможен; квалификатор должен иметь тип "TSD.Form1" (или производный от него тип)
xinvestoriginal
0 / 0 / 0
Регистрация: 29.12.2013
Сообщений: 27
11.08.2015, 09:05     Навигация в меню (ContextMenu) клавишами устройства (C#, WinCE5.0, .NET3.5) #8
Цитата Сообщение от DMF Посмотреть сообщение
Сообщение от xinvestoriginal
создать собственное окно
Как?
неужели гугл и мсдн заблокировали? ну вот, за вас нашёл:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
public void CreateMyForm()
{
   // Create a new instance of the form.
   Form form1 = new Form();
   // Create two buttons to use as the accept and cancel buttons.
   Button button1 = new Button ();
   Button button2 = new Button ();
 
   // Set the text of button1 to "OK".
   button1.Text = "OK";
   // Set the position of the button on the form.
   button1.Location = new Point (10, 10);
   // Set the text of button2 to "Cancel".
   button2.Text = "Cancel";
   // Set the position of the button based on the location of button1.
   button2.Location
      = new Point (button1.Left, button1.Height + button1.Top + 10);
   // Set the caption bar text of the form.   
   form1.Text = "My Dialog Box";
   // Display a help button on the form.
   form1.HelpButton = true;
 
   // Define the border style of the form to a dialog box.
   form1.FormBorderStyle = FormBorderStyle.FixedDialog;
   // Set the MaximizeBox to false to remove the maximize box.
   form1.MaximizeBox = false;
   // Set the MinimizeBox to false to remove the minimize box.
   form1.MinimizeBox = false;
   // Set the accept button of the form to button1.
   form1.AcceptButton = button1;
   // Set the cancel button of the form to button2.
   form1.CancelButton = button2;
   // Set the start position of the form to the center of the screen.
   form1.StartPosition = FormStartPosition.CenterScreen;
 
   // Add button1 to the form.
   form1.Controls.Add(button1);
   // Add button2 to the form.
   form1.Controls.Add(button2);
 
   // Display the form as a modal dialog box.
   form1.ShowDialog();
}
DMF
6 / 6 / 0
Регистрация: 16.04.2015
Сообщений: 106
11.08.2015, 09:16  [ТС]     Навигация в меню (ContextMenu) клавишами устройства (C#, WinCE5.0, .NET3.5) #9
xinvestoriginal, простите, но это никак не похоже на меню, да и нет в Compact Framework'е таких элементов, как диалоги и кнопки помощи, например.
Да и задача - навигация по MainMenu. Т.к. к MainMenu нельзя привязать нажатие клавиши (я не нашёл способа) я клавишей открываю ContextMenu, т.к. визуально они идентичны. Вопрос, как программе понять какой пункт в нём выбран (подсвечен).
xinvestoriginal
0 / 0 / 0
Регистрация: 29.12.2013
Сообщений: 27
11.08.2015, 09:42     Навигация в меню (ContextMenu) клавишами устройства (C#, WinCE5.0, .NET3.5) #10
Цитата Сообщение от DMF Посмотреть сообщение
Т.к. к MainMenu нельзя привязать нажатие клавиши
т.е. изначальная задача- навигация по MainMenu кнопками?
DMF
6 / 6 / 0
Регистрация: 16.04.2015
Сообщений: 106
11.08.2015, 09:51  [ТС]     Навигация в меню (ContextMenu) клавишами устройства (C#, WinCE5.0, .NET3.5) #11
Да, клавишами устройства. Но там разницы практически нет. ContextMenu как бы эмулиирует первый пункт MainMenu.
xinvestoriginal
0 / 0 / 0
Регистрация: 29.12.2013
Сообщений: 27
11.08.2015, 09:59     Навигация в меню (ContextMenu) клавишами устройства (C#, WinCE5.0, .NET3.5) #12
Цитата Сообщение от DMF Посмотреть сообщение
Да, клавишами устройства.
априори это должно работать по умолчанию.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.08.2015, 10:23     Навигация в меню (ContextMenu) клавишами устройства (C#, WinCE5.0, .NET3.5)
Еще ссылки по теме:
ContextMenu вложенные элементы меню. C# WPF .NET 4.x
C# WPF ContextMenu - два элемента на одной строчке в меню
HTML, CSS Навигация меню
AutoCWM навигация в меню Android
Выпадающее меню - навигация JavaScript

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
DMF
6 / 6 / 0
Регистрация: 16.04.2015
Сообщений: 106
11.08.2015, 10:23  [ТС]     Навигация в меню (ContextMenu) клавишами устройства (C#, WinCE5.0, .NET3.5) #13
Цитата Сообщение от xinvestoriginal Посмотреть сообщение
априори это должно работать по умолчанию.
Должно...
Yandex
Объявления
11.08.2015, 10:23     Навигация в меню (ContextMenu) клавишами устройства (C#, WinCE5.0, .NET3.5)
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru