powered by simpleCommunicator - 2.0.35     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / MDI -ли :)
25 сообщений из 110, страница 1 из 5
MDI -ли :)
    #39807591
kill_zdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не судите строго, вопросов много в один день родилось ))
Подскажите подход реализации интерфейса.
Он может да же и не относиться именно к wpf, но раз именно на ней собираюсь делать новый проект, хотелось бы услышать Ваши мнения по этому вопросу.
Должно быть общее окно с менюшками , вызывающее другие окна (справочники, документы и т.д.). Я ранее реализовывал либо классический MDI либо TAB интерфейс в другом ЯП. Что то не затеялось с MDI тут , глянул в сторону таб-ов, все по старой привычке - что там у devexpress? и быстренько накидал под DockLayoutManager . В целом работает, но... цена вопроса. Слышал краем про AvalonDock, пока не вникал если честно.

Как Вы реализуете подобные интерфейсы?
...
Рейтинг: 0 / 0
MDI -ли :)
    #39807597
kill_zdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, еще я попробовал Modern UI, в целом не плохо выглядит, да же лично мне очень понравилось по началу, но не совсем то, все же для моего случая.
...
Рейтинг: 0 / 0
MDI -ли :)
    #39807609
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kill_zdm,
В большинстве случаем хватает HamburgerMenu.
Для старта скачай MaterialDesign примеры.
...
Рейтинг: 0 / 0
MDI -ли :)
    #39807611
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kill_zdm,
Дай скрин из гугла чего тебе надо.
...
Рейтинг: 0 / 0
MDI -ли :)
    #39807617
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не помню точно, но "нативный MDI" не поддерживается в WPF, то есть вы фактически не можете создать окно в окне.
...
Рейтинг: 0 / 0
MDI -ли :)
    #39807627
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kill_zdmЯ ранее реализовывал либо классический MDIего и в дельфи не делают давно.
...
Рейтинг: 0 / 0
MDI -ли :)
    #39807647
kill_zdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да обычный интерфейс, вот это на девекспресс накидал на скорую руку. Тут на табах, с возможностью отделения окон их привязки и т.д. Крутяк конечно, но дорогое удовольствие.
Собственно можно без этих наворотов, хотя что то вроде. Цель -просто окно контейнер, в котором будут всякие справочники и док-ты вызываться из менюшки.
...
Рейтинг: 0 / 0
MDI -ли :)
    #39807649
kill_zdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_sub,
про MaterialDesign я выше сказал, он и есть Modern UI типа, там все же не совсем то.
Что то типа этого Вы имели в виду?
...
Рейтинг: 0 / 0
MDI -ли :)
    #39807653
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kill_zdm,

Ну и делай табы. А тему mdi забудь и смущай.
...
Рейтинг: 0 / 0
MDI -ли :)
    #39807656
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kill_zdm,

MaterialDesign скачиваете проект, смотрите как там менюшка организована.
...
Рейтинг: 0 / 0
MDI -ли :)
    #39807657
kill_zdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123kill_zdm,

Ну и делай табы. А тему mdi забудь и смущай.

Ок. Спасибо. А аналог девэкспресс есть халявный c похожим функционалом ? :)
...
Рейтинг: 0 / 0
MDI -ли :)
    #39807658
kill_zdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_subkill_zdm,

MaterialDesign скачиваете проект, смотрите как там менюшка организована.
ок, попробую
...
Рейтинг: 0 / 0
MDI -ли :)
    #39807659
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kill_zdm,

Всё же просто делается:
А) Делаете элемент управляет Placeholder (этот элемент управления будет обрабатывать события Drop и DragEnter\DragMove и т.д.
(элемент анимируйте так, чтоб при наведении он показывал пользователю о возможности или невозможности разместить элемент управляя). Наследовать можно от ContentControl. В этом же элементе можно разместить элемент из пункта 2.
Б) Делайте элемент управления контейнер содержимого, так как MDI окна будут без хрома, в этом элементе нужно реализовать кнопки Close, Pin\Unpin и так далее. Наследовать лучше от ContentControl. Должен быть заголовок для перетаскивания и выдёргивания из Placeholder'а. DataContext для таких элементов лучше делать абсолютным, а не относительным, так как при перемещении в другое окно DataContext будет унаследован от него, то есть каждая панелька имеет свою модель.
В) Делаете своё окно (наследовать от Window) с блекджеком и девушками с низкой социальной ответственностью.

Как только за заголовок элемента Б кликнули запоминаем координаты, они нужно для сдвига окна относительно мышки.
Незабываем использовать захват мышки (CaptureMouse)
Если заголовок потянули значит панель хотят "оторвать" от Placeholder'а или переместить\бросить на placeholder , при отрыве\прилипании лучше сделать зазор в 20-30 пикселей, чтоб она не отрывались от любого касания, а прилипала и отрывалась на определенном расстоянии
Если панель в placeholder'е, мы удаляем её от туда, создаем окно без хрома (без рамок и кнопок, без кнопки в TaskBar'е), задаем Owner'а, чтоб наше второстепенное окно всегда было выше основного. Размещаем элемент управления в новом окне, как содержимое.
Затем отключаем с помощью WinApi обработку сообщений, так как мышка находится не над основным окном, куда могут кинуть панельку (окно), а над самим перетаскивыемым окном, оно будут перехватывать сообщения от мышки и не давать обрабатывать его в основном. Перемещаем окно за мышкой, если мышка движется, не забываем делать отступ окна левее и выше, на количество точек, которые запомнили в начале
Если окно брошено под Placeholder'ом, он принимает его содержимое, если нет, то панель остается в окне, включаем обработку сообщений и оставляем как есть.
Как только всё готово, можно начать перетаскивание, либо Drag&Drop сделать полностью свой.

как будет готов Placeholder, можно его прикрутить к DockPanel или какой то еще

Еще нужно во всей этой схеме продумывать процесс загрузки и выгрузки Layout'а, для его сохранения. Бессмысленно делать такое, если нельзя сохранить и восстановить состояние после перезапуска.

я бы занялся таким, но только за деньги :)
...
Рейтинг: 0 / 0
MDI -ли :)
    #39807662
kill_zdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_subkill_zdm,

MaterialDesign скачиваете проект, смотрите как там менюшка организована.
Может я не догоняю еще до этого интерфейса. Но мне кажется он слишком привязным. Т.е. если вызывается какая то одна сущность - страница, любая, то да, а мне к примеру надо вызывать несколько однотипного, ну к примеру создаю несколько приходных накладных, которые я должен видеть и не в модальном виде естественно и что бы все они жили в едином контейнере.
...
Рейтинг: 0 / 0
MDI -ли :)
    #39807666
kill_zdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes,

Круть, попробую реализовать :-) но позже... :-) наверное :-)
...
Рейтинг: 0 / 0
MDI -ли :)
    #39807682
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kill_zdm,
конечно же это не готовый вариант для Вас, он дает возможность понять основной принцип. Ну а дальше модифицируйте как Вам нужно.
...
Рейтинг: 0 / 0
MDI -ли :)
    #39807684
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kill_zdm,

Уже говорил. Нет халявного. Условно халявный - телерик.
...
Рейтинг: 0 / 0
MDI -ли :)
    #39807690
kill_zdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123kill_zdm,

Уже говорил. Нет халявного. Условно халявный - телерик.
Ну это мы про грид говорили ) А AvalonDock, что то смотрю, но понять не могу, вроде то да не то )))
...
Рейтинг: 0 / 0
MDI -ли :)
    #39807692
kill_zdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kill_zdm,

Если не таб интерфейс но типа прям как VS в целом подошел бы, но там как то не понятно пока для меня или совсем не то ...
...
Рейтинг: 0 / 0
MDI -ли :)
    #39807697
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kill_zdm,
Там есть все чо душа желает. И докирование как студии.
Удачи.
...
Рейтинг: 0 / 0
MDI -ли :)
    #39807834
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kill_zdm,
Забудь слово контейнер на время. И вспомни слово wysiwyg
...
Рейтинг: 0 / 0
MDI -ли :)
    #39807840
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kill_zdmДа обычный интерфейс, вот это на девекспресс накидал на скорую руку. Тут на табах, с возможностью отделения окон их привязки и т.д. Крутяк конечно, но дорогое удовольствие.
Собственно можно без этих наворотов, хотя что то вроде. Цель -просто окно контейнер, в котором будут всякие справочники и док-ты вызываться из менюшки.

скрин mainWindow дай. Первое открытие.
...
Рейтинг: 0 / 0
MDI -ли :)
    #39807854
kill_zdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Сейчас не у компа, но просто форма (mainwindow.xaml дефолтная после создания wpf роекта) как userinterface на весь экран с менюшками. Через мин 30 буду дома скину полный расклад. Спасибо
...
Рейтинг: 0 / 0
MDI -ли :)
    #39807857
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kill_zdm,
Ну вот и дашь. Не беги.
А профи тут подскажут как визуально, в статике, WYSIWYG ее собрать.
...
Рейтинг: 0 / 0
MDI -ли :)
    #39807881
kill_zdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Вот главная, тут собственно ни чего, просто контейнер, ниже результат того, что нужно. В виде табов или отдельных форм, мне уже все равно :) лишь бы это было единым целым
...
Рейтинг: 0 / 0
25 сообщений из 110, страница 1 из 5
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / MDI -ли :)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]