Предлагаю на суд общественности диалог выбора даты/времени. Все мы знаем, какой ушлёпский этот диалог в WPF. Хуже того — он сделан только для даты, а для времени есть отдельный ужасный контрол.
Итак, вот он:
Что тут хорошего:
Первое и главное: это диалог, т.е. его можно вызвать из любого места программы, т.к. не всегда я хочу показывать именно однострочный редактор даты. Так же можно "попрыгать" по датам — например, узнать какой день недели был 100 лет назад, не испортив редактируемую дату
Все элементы диалога — стандартные, не надо угадывать, "а что будет, если сюда кликнуть?". Разве что дни сделаны просто цифрами (а не кнопками), но это в угоду читабельности. И даже тут если мышь расположена над днём, курсор превращается в тыкающий палец — очевидное действие
Если диалог вызвали без начальной даты, берётся сегодняшняя (и от неё будут отсчитываться показываемые годы). Попутно к дате можно указать количество показываемых лет (текущий год будет в середине) и самый минимальный год. Это безумно удобно, если потенциальный выбор лет широкий (например, дни рождения). Быстро скрольнули по годам и нашли прадедушкин 1890-ый.
Да, диалог растягивается, так что находить года можно куда легче
Шрифт крупный и легко читабельный
Прямой доступ выбора как лет, так и месяцев. При этом число месяца остаётся текущим. Если вы выбрали 31 марта и сменили месяц на февраль, апокалипсиса не случится — календарь умно сдвинется на последний доступный день — 28-е
Выходные подсвечены как у дней недели, так и самих дней — трудно ошибиться!
Текущая дата выделена жирным, что сразу бросается в глаза и не пересекается с подсветкой выбранной даты
Выбранная дата видна внизу, на голубой метке. Слева от неё — кнопка сброса к той дате, с которой был вызван диалог (не обязательно сегодняшняя)
Внизу есть зелёный редактор времени. Его можно спрятать, если не нужен. Часы-минуты легко вводятся — ПКМ и выбираем число из компактного всплывающего меню (новое время сразу же отображается в голубой метке). Если часы/минуты введены неправильно(символами или слишком большие числа), они подсветятся красным
Показаны по 10 дней предыдущего и последующего месяцев (цвета Teal, чётко отделяющего числа от текущего месяца). Если на них кликнуть, текущий месяц соответственно сдвинется
Я не знаю, сколько ещё десятилетий уйдёт у MS, чтобы понять, что их убогий WPF ещё пилить и пилить. Так что пока тугодумы тугодумят, придётся всё делать самим.
Здравствуйте, Baiker, Вы писали:
B>Предлагаю на суд общественности диалог выбора даты/времени. Все мы знаем, какой ушлёпский этот диалог в WPF. Хуже того — он сделан только для даты, а для времени есть отдельный ужасный контрол.
А где брать-то и как использовать?
Вообще у DevExpress диалоги были не плохи. А так WPF свое похоже отжил и не факт, что МС будет его вообще дорабатывать.
Здравствуйте, Osaka, Вы писали:
BE>>А так WPF свое похоже отжил и не факт, что МС будет его вообще дорабатывать. O>И что ж теперь вместо него появилось, хотя бы не сильно хуже?
JS, хоть я тоже от него плююсь.
Р>>А что там дорабатывать? Движок рабочий. BE>Кросс-платформу, которая нынче нужна почти везде. А так все больше интерфейсов на JS.
Телефоноприложения с единственной кнопкой "заплатить" во весь экран — это ну совершенно не "везде". Всякое специализированное десктопное ПО со сложным GUI, например с кучей графиков в реалтайме, не сочетается с тормозным и прожорливым JS совершенно никак, и кроссплатформенность тоже не критический параметр.
Здравствуйте, Baiker, Вы писали:
B>ужасный контрол. B>Итак, вот он: B>Image: Select-Date.png
Полностью согласен — этот контрол ужасен.
Вернёмся к стандартному из WPF: если хочется поменять его внешний вид и поеведение — описываем это через стиль, благо состоит он из трёх основных частей (контейнер значения, кнопка и попап). Первый же гуглёж "wpf datepicker style" выдаёт, например, вот такой неплохой бложик: https://codesdirectory.blogspot.com/2013/01/wpf-datepicker-control-style.html
Если нужно получить попап-часть отдельно — не вопрос, она называется... <Calendar>! Внезапно, правда? И ему тоже можно прикрутить диапазон Min-max по датам.
Если надо прикрутить к контролу что-то дополнительно — опять же, делается легко, например: https://stackoverflow.com/a/70000773
Про размер, шрифты и т.п. даже говорить не буду — это настраивается для любой части стиля как душе угодно. Про совместимость с темами, родительскими стилями оформления, анимации/трансформации — даже не заикаюсь.
Ну, Вы бы хоть Метанит тот же почитали — ругать его можно много и долго, но что не отнять, так это возможность быстро вкатиться в искомую тему по принципу 80/20, а тонкости уже для самостоятельного разбора.
Ваша многостраничная война с WPF уже не вызвает даже грустной улыбки. Дорогой Вы наш Рыцарь печального образа, проснитесь и очнитесь. Искренне Ваши, Санчи и прочие Пансы.
очень спорное суждение. многие трейдинговые и онлайн беттинг аппликации используют веб вью именно из-за нежелания связываться с нативными реализциями, не говоря уже про то что писать придеться как минимум два раз это.
Здравствуйте, Osaka, Вы писали:
B>>Прямой доступ выбора как лет, так и месяцев O>Интересно, а просто календарь за год в выпадающем списке кто-нибудь делал?
дропдаун — немобильное решение, крайне неудобно вплоть до невозможности использования. адаптивные дропдауны — основаны на попап экранах.
Здравствуйте, Mr.Delphist, Вы писали:
MD>Вернёмся к стандартному из WPF: если хочется поменять его внешний вид...
Нда... лучше б ты не позорился, Дельфист! Такой маразм завернул, что он даже рядом не стоял с идеей "календаря". Отдыхай, "меняй стили стандартного календаря", а людям дай спокойно юзать ГОТОВЫЙ контрол.
По дизайну — да, соглашусь, я вообще программист! Но функционально там всё на месте. Более того — в ИТ как раз и процветает "красивое ублюдство", которым невозможно пользоваться, в ущерб функциональным вещам, которые просто надо стилизовать до ума. В любом случае, ОДНА НЕДЕЛЯ и юзеры даже перестанут замечать этот твой "дизайн" и будут жамкать кнопки на автомате. Так что дизайнерские замечания я вполне уважаю (и было бы даже здорово, если кто-то нарисовал "как надо"), но придираться к функциональности — это надо быть совсем скорбным умом. Явно же видно, что диалог на порядок круче стандартного! Но интернет-срунам всё равно, я так понимаю — лишь бы поспорить. Известный диагноз, лекарство неизвестно.
Здравствуйте, BlackEric, Вы писали:
BE>А где брать-то и как использовать?
Пока что "на суд общественности" — обсудить, критикнуть, предложить улучшения. Могу сразу сказать, что это НЕ коммерческий код, так что я не буду сидеть на нём как собака на сене.
Были бы ОЧЕНЬ желательны предложения по дизайну. Как прагматик, я больше сторонник "узнаваемого и очевидного", чем "красиво наляпанного", но поле для улучшений есть.
BE>Вообще у DevExpress диалоги были не плохи
Это коммерческая либа и далеко не всем компаниям охота отваливать жирный кусок бюджета для Девэксовский поделий. И от меня лично: я крайне скептически отношусь к качеству девок. В "дефицитные" времена Дельфей это был шикарный набор виджетов. Но сейчас это превратилось в bloatware, от которого лучше держаться подальше.
BE> А так WPF свое похоже отжил и не факт, что МС будет его вообще дорабатывать.
Могу согласиться с тем, что временно у M$ другие приоритеты — смузихлёбы и индусокликатели, из которых MS состоит на 90%, даже не потянут создать похожий проект, так что существующий WPF точно никто не выкинет — слишком много ценного и высокоинтеллектуального труда вложено. А вот развивать... тут мой хрустальный шар молчит, но факт тот, что наколенное позорище MAUI (стыдливо переименованный Кошмарин) — это точно тупик. И интыпрайз даже пытаться не будет на него ставить. А если проект в игноре, то рано или поздно MS ОБЯЗАНА будет что-то делать — корпоративные клиенты не потерпят "отладку на кошках" (т.е. на себе) и останутся на WinForms/WPF. И тогда Муделла позорно сделает сепукку и мы снова вернёмся откуда начали — да здравствует декларативность и WPF. И вот тогда они снова начнут пилить WPF — то, что должны были сделать ещё 5 лет назад.
Как вариант, мы тут всем RSDN'ом напишем WPF-Next и нас купят
Здравствуйте, Baiker, Вы писали:
B> BE> А так WPF свое похоже отжил и не факт, что МС будет его вообще дорабатывать.
B>...так что существующий WPF точно никто не выкинет — слишком много ценного и высокоинтеллектуального труда вложено.
WPF фсе. Учите новый базворд — MAUI.
B> А вот развивать... тут мой хрустальный шар молчит, но факт тот, что наколенное позорище MAUI (стыдливо переименованный Кошмарин) — это точно тупик.
Здравствуйте, rudzuk, Вы писали:
R>Здравствуйте, Baiker, Вы писали:
B>> Явно же видно, что диалог на порядок круче стандартного!
R>Если судить по количеству кнопок — однозначно круче! Все же, мемы не на пустом месте возникают, да...
В этом и прикол: если цель — выёживаться, то да, эппл с одной кнопкой — однозначный победитель! (интересно, сколько матов отослано рукожопу, сделавшему magic mouse? )
Но если цель — быстро И УДОБНО редактировать — извини, одной кнопкой никак.
Опять же, повторюсь: это топик-ОБСУЖДЕНИЕ, брэйншторм, если угодно. Если есть идея, как выбрать месяц без 12 кнопок — предлагайте!
Но основную цель надо держать в голове: удобство. Вы все знаете, что за гемор tree-контрол. Бывает, что без него никак, но если его вкорячили, это прям фэйспалм по юзабилити.
Или вот комбо-боксы. Видели такие, где для редактирования bool величины дают комбобокс [true], [false]?! (та же VS) — это же полный маразм!! Зато прогер-говноед упростил себе-любимому работу — вместо 20 строчек написал две.
Так что не всё так просто... Вы же видите готовый результат и он поначалу пугает. Но нарисуйте сами и посмотрите — придёте к тому же, только в профиль.
Я бы ещё пошёл на упразднение полоски лет в пользу комбобокса (хотя не факт, что станет удобнее — представьте люди работают с документами 2018....2023 года и насколько им удобно выбирать дату, не прыгая по спискам!). Но остальное — не уверен, что можно упростить. Попробуйте, может что и получится.
Здравствуйте, rudzuk, Вы писали:
R>WPF фсе. Учите новый базворд — MAUI.
Повторять лозунги M$ нет необходимости Но мы же не бараны, правда? Куда плывёт MAUI видно и так. Поэтому консервативный WinForms ещё посмеётся на могилах авангардистов.
Кстати, кто-то может объяснить, как ЛИНУКСОВЫЙ Кошмарин внезапно стал iOS/Android/Windows БЕЗ САМОГО ЛИНУКСА?!?!
Здравствуйте, Baiker, Вы писали:
B> R>Если судить по количеству кнопок — однозначно круче! Все же, мемы не на пустом месте возникают, да...
B> Но если цель — быстро И УДОБНО редактировать — извини, одной кнопкой никак. B> Опять же, повторюсь: это топик-ОБСУЖДЕНИЕ, брэйншторм, если угодно. Если есть идея, как выбрать месяц без 12 кнопок — предлагайте!
Посмотри как работает семерочный диалог выбора даты, над часами. Там все есть и сделано очень удобно. А вот если нужно для быстрого набора, то тут не диалоги изобретать нужно, а грамотно расположить контролы для ручного ввода. Видел, как операторы данные вносят? Они фигачат, как пулемет. Такие звери, даже мышку в руки не берут.
Здравствуйте, Baiker, Вы писали:
B> Повторять лозунги M$ нет необходимости Но мы же не бараны, правда? Куда плывёт MAUI видно и так. Поэтому консервативный WinForms ещё посмеётся на могилах авангардистов.
Винформс конечно всех переживет, но впф-то уже списали.
B> Кстати, кто-то может объяснить, как ЛИНУКСОВЫЙ Кошмарин внезапно стал iOS/Android/Windows БЕЗ САМОГО ЛИНУКСА?!?!
Здравствуйте, Baiker, Вы писали:
B>Предлагаю на суд общественности диалог выбора даты/времени. Все мы знаем, какой ушлёпский этот диалог в WPF. Хуже того — он сделан только для даты, а для времени есть отдельный ужасный контрол.
Предлагаю посмотреть как реализован ввод даты в FoxPro 2.6 for DOS
просто поле с маской, набор занимает доли секунд