Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Способ 2. Вместо разметки изменить свойство InputGestureText можно в процедурном коде, но для этого элементам меню нужно присвоить имена. Удалите в разметке из






Вместо разметки изменить свойство InputGestureText можно в процедурном коде, но для этого элементам меню нужно присвоить имена.

  • Удалите в разметке из дескрипторов элементов меню параметры Command и InputGestureText, а добавьте вместо них имена элементов, как показано ниже
< Menu> < MenuItem Header=" _File" > < MenuItem Name=" openMenu" /> < MenuItem Name=" saveMenu" /> < /MenuItem> < /Menu>
  • Добавьте в самый конец обработчика события Loaded после кода добавления жестов следующую пару строк динамического присоединения модифицированных команд к меню-источнику
void Window1_Loaded(object sender, RoutedEventArgs e) { // Привязка команд в коде CommandBinding binding = new CommandBinding(); binding.Command = ApplicationCommands.Open; binding.Executed += new ExecutedRoutedEventHandler(OpenCommand_Executed); this.CommandBindings.Add(binding); binding = new CommandBinding(); binding.Command = ApplicationCommands.Save; binding.Executed += new ExecutedRoutedEventHandler(SaveCommand_Executed); this.CommandBindings.Add(binding); // Очистка коллекций прежних жестов команд ApplicationCommands.Open.InputGestures.Clear(); ApplicationCommands.Save.InputGestures.Clear(); // Добавление новых жестов клавиатуры Alt+O и Alt+S InputGesture key = new KeyGesture(Key.O, ModifierKeys.Alt, " Alt+O"); ApplicationCommands.Open.InputGestures.Add(key); // KeyGesture keyGesture = new KeyGesture(Key.S, ModifierKeys.Alt, " Alt+S"); ApplicationCommands.Save.InputGestures.Add(keyGesture); // Добавление новых жестов мыши Ctrl+LeftClick и Ctrl+RightClick InputGesture mouse = new MouseGesture(MouseAction.LeftClick, ModifierKeys.Control); ApplicationCommands.Open.InputGestures.Add(mouse); // MouseGesture mouseGesture = new MouseGesture(); mouseGesture.MouseAction = MouseAction.RightClick; mouseGesture.Modifiers = ModifierKeys.Control; ApplicationCommands.Save.InputGestures.Add(mouseGesture); // Присоединяем модифицированные команды к меню-источнику openMenu.Command = ApplicationCommands.Open; saveMenu.Command = ApplicationCommands.Save; }
  • Запустите приложение и убедитесь, что теперь маркеры команд меню изменились в соответствии с введенными нами при формировании новых жестов





© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.