[.NET, Visual Studio, C#, Разработка под Windows] Тайловый менеджер для Windows своими руками на C# Windows Form

Автор Сообщение
news_bot ®

Стаж: 6 лет 2 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
29-Апр-2021 13:32


Всем привет!Для своих нужд я использую личный компьютер с установленной операционной системой Linux. А для работы необходимо использовать Windows. И иногда хочется какие-то инструменты перенести из мира Linux в мир Windows. Хороших инструментов в среде Linux немало. В Windows тоже, конечно, много хорошего, но иногда бывает не хватает тех или иных инструментов.Именно подобное сравнение часто приводит меня к написанию каких-то новых программ, которых не хватает, а найти аналоги не получается.Например вот инструмент тайловый оконный менеджер (Tiling window manager) это менеджер который делает из окон не пересекающие области. В отличии от окон в классическом представлении, когда мы можем накладывать друг на друга различные приложения.Плюсом такого менеджера является то, что не нужно искать открытые окна, они видны все сразу на экране и легко работать с помощью клавиатуры. Если вы работаете с несколькими приложениями и постоянно приходится переключать с одного окна на другое, а между тем открыто еще пару десятков окон, которые нельзя закрыть и поиск нужного окна начинает занимать какое-то время, то этот вариант вам точно подойдет. Вот и мне показалось, что без такого инструмента в Windows иногда приходится сложновато.Я понимаю что в Windows управление окнами становится лучше с каждой версией. В Windows 7 появилось несколько таких новых возможностей, которые позволяют быстро развернуть окно только по вертикали или расположить его ровно на половине экрана, справа или слева. Но это всё равно не решает проблему перекрытия окон.Поэтому я сначала поискал аналоги, но все они не устраивали меня по разным причинам. В основном все инструменты, не делают какую-то обертку, которую можно включить или выключить, а начинают форматировать все окна, которые открыты в данный момент. Это немного не то, что мне нужно, потому что иногда нужно развернуть одно окно на весь экран, чтобы сосредоточиться, а иногда разделить 4 части.Таким образом я понял, что можно попробовать написать, что-то своё.Возможности программыРабота с окнамиВ итоге у меня получилась такая небольшая программка как на картинке выше. Идея заключалась в том, что появляются области, в которые можно перемещать любые программы, которые уже запущены:
Поначалу это меня вполне устроило. Я разместил все нужные окна и продолжал работать. Пришлось немного повозиться, чтобы личные рамки программы затирались, чтобы не повторялись внутри формы.Кстати сами формы взяты из библиотеки DockPanelSuite это помогло решить о большую часть проблем с размещением окон.Работа с браузеромДальше мне захотелось адаптировать сам браузер. Его тоже можно занести в форму, но верхняя панель вкладок всё равно остается и это неудобно:
Поэтому я решил прикрутить еще и свой браузер на основе Chromium, к счастью, уже есть готовый пакет CefSharp.WinForms, который не сложно подключается.И теперь это выглядит так:
Теперь у меня есть свой полноценный браузер, правда лишенный всех возможностей отладки профилирования и прочих удобств. Но всё равно получилось достаточно удобно в использовании.Работа с сессиямиЕще одна фича которая мне нужна была это сохранение состояний открытых окон. Я назвал это сессиями, но пока есть возможность сохранять только одну сессию:
Таким образом можно сохранить расположение всех открытых окон, и после повторного открытия загрузить из сессии все нужные вкладки и продолжить работу. Это очень удобно если вы делаете какие-то долгоиграющие задачи и периодически к ним возвращаетесь. ЗаключениеВот так мне удалось написать небольшую программку, которая помогает в работе. Я активно её использую и продолжаю дорабатывать. Если есть какие-то идеи то буду рад любым предложениям.Поделитесь и вы о том, как организуете своё рабочее пространство и полезно ли было бы использовать такой инструмент в вашей работе. Может эта идея кому-то еще покажется интересной.Исходники находятся тутВсем спасибо за внимание!
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_.net, #_visual_studio, #_c#, #_razrabotka_pod_windows (Разработка под Windows), #_razrabotka (разработка), #_tiling_window_manager, #_tajlovyj_okonnyj_menedzher (тайловый оконный менеджер), #_frejmovyj_okonnyj_menedzher (Фреймовый оконный менеджер), #_.net, #_visual_studio, #_c#, #_razrabotka_pod_windows (
Разработка под Windows
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 03-Май 12:29
Часовой пояс: UTC + 5