Задать вопрос

Как реализовать на C# интерфейс программы не просто кнопки на wpf или winForms?

Всем привет. Подскажите хорошую книгу или ресурс, где можно почитать по созданию интерфейса для своего по ( не нужен убийца фотошопа) , но чтото на подобии как в scada ( контролы, кнопки и пр.), или например как в aimp . Ну явно не рисуется, потом режется на слайсы и затем картиночки меняются ( такое было в 00х). Спасибо
  • Вопрос задан
  • 145 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 4
HemulGM
@HemulGM
Delphi Developer, сис. админ
То, о чем вы пишите называется "скин" или "шкурки". Это достаточно производительный способ для отрисовки, но на этом плюсы этого подхода заканчиваются и начинаются минусы:
1. Масштабированию такой подход поддается с трудом (например, несколькими размерами карт скина)
2. В рантайме модификация такого скина тоже выполняется с трудом (никто этого не делает)
3. Как правило, скин (как в aimp) не универсальный, а для конкретного расположения элементов управления.
Это все называется растровый скин.

Сейчас в большинстве своем применяется подход с векторной отрисовкой контролов. Это менее производительно, но более гибко все работает и нет проблем с масштабированием (разным DPI экранов). Ну и позволяет менять что угодно где угодно во время выполнения приложения (типа тени, свечение, цвета и т.д.)

Так что, я не советую искать растровый вариант отрисовки для C#. Да и вообще для любых GUI. Изучите, как сейчас происходит кастомизация контролов в GUI.

Можешь просто погуглить "красивый UI WPF или Avalonia" и увидеть пример (видео гайды есть)
Ответ написан
@rPman
Документация.

А еще, visual studio это генератор кода, когда ты в GUI кидаешь кнопочки на формочку, IDE буквально генерирует код для их (кнопочек) создания (и наоборот, исправление в этом коде меняет параметры в интерфейсе, правда с оговорками), это можно скопировать и модифицировать по своей логике.
Ответ написан
Комментировать
VoidVolker
@VoidVolker Куратор тега C#
Dark side eye. А у нас печеньки! А у вас?
WPF/MAUI позволяет рисовать любые интерфейсы с любыми эффектами. Да, можно кинуть элемент на форму, но возможности формошлёпа ограничены, поэтому обычно пишут кодом, а формошлёпы полезны для прототипов и нубов. В WPF/MAUI стандарт - MVVM паттерн и плюс ещё несколько других вариантов есть. На хабре поищите статьи про него и библиотеку Prism (рекомендую) - там есть очень хорошие и подробные статьи. Интерфейс описывается с помощью XML, а именно - XAML. Да, оно не идеально, для маленьких проектов не очень практично, хоть и вполне применимо. А вот в средних и больших/сложных проектах - отличное решение, особенно в команде.

WinForms сегодня имеет смысл использовать только если вам нужна поддержка специфических функций, Windows XP или просто хотите по-быстрому наформошлёпить что-то маленькое и одноразовое. В остальном признано устаревшей технологией и применяется только как дополнение или костыль для исправления костылей WPF. Да, в WPF тоже есть костыли и они очень хорошо чувствуются и с которыми приходится бороться (например невозможность абсолютно точного позиционирования WPF окна на мультимониторной конфигурации из-за костылей в механизмах DPI винды и WPF).

Ну и плюс отдельного упоминания заслуживают альтернативные UI библиотеки и фреймворки типа Avalonia, Uno и иже с ними.

Вот вам несколько реальных примеров реализации дизайнерских интерфейсов:
WPF custom GUI
900181ba79.png
2791f5a63c.png
71ab1f8462.png

Вот тут можно посмотреть исходный код небольшого проекта с использованием паттерна MVVM: https://github.com/VoidVolker/LockScreen (тут уже интерфейс максимально простой). Несмотря на то, что само приложение на WPF, окно с картинкой пришлось делать на WinForms из-за костыльного DPI в современных виндах и, особенно в WPF. Аналогично пришлось поступать и в приложении со встроенным RDP клиентом - там всё ещё веселее в виде взаимного встраивания WPF и WinForms друг в друга и разделения на несколько проектов для создания работающих зависимостей от системных библиотек - спасибо LibMSTSC и мелкомягким за очень весёлые приключения.
Ответ написан
@mkvmaks Автор вопроса
Всем спасибо за активность, есть что почитать
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы