/
Vagabond132
/
TerrariaCourse
Обзор
Документация
Войти
/
Vagabond132
/
TerrariaCourse
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
Windows
View/Menu/ViewMenu.cs
79 строк
2 KB
Vagabond132
Добавлены комментарии
12 янв 2025, 02:30
12 янв 2025, 02:30
3984878
Код
Авторство
О чём код?
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace View.Menu { /// <summary> /// Представление меню /// </summary> public abstract class ViewMenu : ViewBase { /// <summary> /// Меню модель /// </summary> private Model.Menu.Menu _menu = null; /// <summary> /// Словарь подпунктов /// </summary> private Dictionary<int, ViewMenuItem> _subMenu = null; /// <summary> /// Меню список /// </summary> protected ViewMenuItem[] Menu => _subMenu.Values.ToArray(); /// <summary> /// Координата х /// </summary> public int X {get; set;} /// <summary> /// Координата У /// </summary> public int Y { get; set; } /// <summary> /// Ширина /// </summary> public int Width { get; protected set; } /// <summary> /// Высота /// </summary> public int Height { get; protected set; } /// <summary> /// Отображение элемента меню /// </summary> /// <param name="parId"></param> /// <returns></returns> public ViewMenuItem this[int parId] { get { return _subMenu[parId]; } } /// <summary> /// Конструктор /// </summary> /// <param name="parSubMenuItem">Подменю</param> public ViewMenu(Model.Menu.Menu parSubMenuItem) { _menu = parSubMenuItem; _subMenu = new Dictionary<int, ViewMenuItem>(); foreach (Model.Menu.MenuItem elMenuItem in parSubMenuItem.Items) { _subMenu.Add(elMenuItem.ID, CreateItem(elMenuItem)); } _menu.NeedRedraw += NeedRedraw; } /// <summary> /// Нужна перерисовка /// </summary> protected abstract void NeedRedraw(); /// <summary> /// Создать элемент /// </summary> /// <param name="parMenuItem"></param> /// <returns></returns> protected abstract ViewMenuItem CreateItem(Model.Menu.MenuItem parMenuItem); } }