/// <summary> /// Создает новый экземпляр файлового менеджера. /// </summary> /// <param name="maxWidth">Максимальная используемая ширина.</param> /// <param name="maxHeight">Максимальная используемая высота.</param> public FileManager(int maxWidth, int maxHeight) { CurrentDirectory = null; panelWidth = maxWidth / 2 - 2; list = new StackContainer(Orientation.Vertical, maxVisibleCount: maxHeight - 3); header = new Label("", maxWidth); selectedWidget = new StackContainer(Orientation.Vertical, maxVisibleCount: maxHeight - 3); selectedSet = new OrderedSet <string>(); var wrappedList = new RelativePosition(0, 1) .Add(new Frame(Style.DarkGrayOnDefault) .Add(list)); var wrappedSelected = new RelativePosition(40, 1, 1) .Add(new Frame(Style.DarkGrayOnDefault) .Add(selectedWidget)); RootContainer = new BaseContainer() .Add(new RelativePosition(0, 0, 1) .Add(header)) .AddFocused(wrappedList) .Add(wrappedSelected); RootContainer.AsIKeyHandler() .Add(new[] { new KeySelector(ConsoleKey.F10), new KeySelector(ConsoleKey.Q) }, () => RootContainer.Loop.OnStop = () => Console.WriteLine("До новых встреч!")); list.AsIKeyHandler() .Add(new[] { new KeySelector('/'), new KeySelector('\\') }, () => ChangeDir(null)) .Add(new KeySelector(ConsoleKey.Tab), () => RootContainer.Focused = wrappedSelected); selectedWidget.AsIKeyHandler() .Add(new KeySelector(ConsoleKey.Tab), () => RootContainer.Focused = wrappedList); }