/
Vagabond132
/
TerrariaCourse
Обзор
Документация
Войти
/
Vagabond132
/
TerrariaCourse
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
Windows
WpfController/Menu/ControllerMainMenuWpf.cs
64 строки
2 KB
Vagabond132
Корректировки
11 янв 2025, 10:47
11 янв 2025, 10:47
a0fed13
Код
Авторство
О чём код?
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Input; using Controller.Menu; using WpfController.Game; namespace WpfController.Menu { /// <summary> /// Контроллер главного меню /// </summary> public class ControllerMainMenuWpf : ControllerMenu { /// <summary> /// меню /// </summary> private WpfView.Menu.ViewMenuMainWpf _viewMenu = null; protected bool NeedExit { get; set; } /// <summary> /// Конструктор контроллера /// </summary> public ControllerMainMenuWpf() { Menu = new Model.Menu.MenuMain(); _viewMenu = new WpfView.Menu.ViewMenuMainWpf(Menu); Menu[(int)Model.Menu.MenuMain.MenuItemCodes.Exit].Selected += () => { _viewMenu.OnKeyPressed -= OnKeyPressed; NeedExit = true; Environment.Exit(0); }; Menu[(int)Model.Menu.MenuMain.MenuItemCodes.New].Selected += () => { _viewMenu.OnKeyPressed -= OnKeyPressed; NeedExit = true; new ControllerInputMenu().Start(); }; Menu[(int)Model.Menu.MenuMain.MenuItemCodes.Rules].Selected += () => { _viewMenu.OnKeyPressed -= OnKeyPressed; NeedExit = true; new WpfRulesController().Start(); }; Menu[(int)Model.Menu.MenuMain.MenuItemCodes.Records].Selected += () => { _viewMenu.OnKeyPressed -= OnKeyPressed; NeedExit = true; new WpfRecordsController().Start(); }; } /// <summary> /// На нажатие кнопок /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OnKeyPressed(object sender, KeyEventArgs e) { switch (e.Key) { case Key.Up: Menu.FocusPrevious(); break; case Key.Down: Menu.FocusNext(); break; case Key.Enter: Menu.SelectFocusedItem(); break; } } /// <summary> /// Старт /// </summary> public override void Start() { _viewMenu.OnKeyPressed += OnKeyPressed; } } }