|
MDI -ли :)
|
|||
---|---|---|---|
#18+
Не судите строго, вопросов много в один день родилось )) Подскажите подход реализации интерфейса. Он может да же и не относиться именно к wpf, но раз именно на ней собираюсь делать новый проект, хотелось бы услышать Ваши мнения по этому вопросу. Должно быть общее окно с менюшками , вызывающее другие окна (справочники, документы и т.д.). Я ранее реализовывал либо классический MDI либо TAB интерфейс в другом ЯП. Что то не затеялось с MDI тут , глянул в сторону таб-ов, все по старой привычке - что там у devexpress? и быстренько накидал под DockLayoutManager . В целом работает, но... цена вопроса. Слышал краем про AvalonDock, пока не вникал если честно. Как Вы реализуете подобные интерфейсы? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 13:27 |
|
MDI -ли :)
|
|||
---|---|---|---|
#18+
А, еще я попробовал Modern UI, в целом не плохо выглядит, да же лично мне очень понравилось по началу, но не совсем то, все же для моего случая. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 13:36 |
|
MDI -ли :)
|
|||
---|---|---|---|
#18+
kill_zdm, В большинстве случаем хватает HamburgerMenu. Для старта скачай MaterialDesign примеры. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 13:54 |
|
MDI -ли :)
|
|||
---|---|---|---|
#18+
kill_zdm, Дай скрин из гугла чего тебе надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 13:56 |
|
MDI -ли :)
|
|||
---|---|---|---|
#18+
не помню точно, но "нативный MDI" не поддерживается в WPF, то есть вы фактически не можете создать окно в окне. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 14:11 |
|
MDI -ли :)
|
|||
---|---|---|---|
#18+
kill_zdmЯ ранее реализовывал либо классический MDIего и в дельфи не делают давно. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 14:22 |
|
MDI -ли :)
|
|||
---|---|---|---|
#18+
Да обычный интерфейс, вот это на девекспресс накидал на скорую руку. Тут на табах, с возможностью отделения окон их привязки и т.д. Крутяк конечно, но дорогое удовольствие. Собственно можно без этих наворотов, хотя что то вроде. Цель -просто окно контейнер, в котором будут всякие справочники и док-ты вызываться из менюшки. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 14:52 |
|
MDI -ли :)
|
|||
---|---|---|---|
#18+
vb_sub, про MaterialDesign я выше сказал, он и есть Modern UI типа, там все же не совсем то. Что то типа этого Вы имели в виду? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 14:59 |
|
MDI -ли :)
|
|||
---|---|---|---|
#18+
kill_zdm, Ну и делай табы. А тему mdi забудь и смущай. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 15:07 |
|
MDI -ли :)
|
|||
---|---|---|---|
#18+
Petro123kill_zdm, Ну и делай табы. А тему mdi забудь и смущай. Ок. Спасибо. А аналог девэкспресс есть халявный c похожим функционалом ? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 15:13 |
|
MDI -ли :)
|
|||
---|---|---|---|
#18+
vb_subkill_zdm, MaterialDesign скачиваете проект, смотрите как там менюшка организована. ок, попробую ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 15:13 |
|
MDI -ли :)
|
|||
---|---|---|---|
#18+
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'а, для его сохранения. Бессмысленно делать такое, если нельзя сохранить и восстановить состояние после перезапуска. я бы занялся таким, но только за деньги :) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 15:14 |
|
MDI -ли :)
|
|||
---|---|---|---|
#18+
vb_subkill_zdm, MaterialDesign скачиваете проект, смотрите как там менюшка организована. Может я не догоняю еще до этого интерфейса. Но мне кажется он слишком привязным. Т.е. если вызывается какая то одна сущность - страница, любая, то да, а мне к примеру надо вызывать несколько однотипного, ну к примеру создаю несколько приходных накладных, которые я должен видеть и не в модальном виде естественно и что бы все они жили в едином контейнере. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 15:20 |
|
MDI -ли :)
|
|||
---|---|---|---|
#18+
Roman Mejtes, Круть, попробую реализовать :-) но позже... :-) наверное :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 15:23 |
|
MDI -ли :)
|
|||
---|---|---|---|
#18+
kill_zdm, конечно же это не готовый вариант для Вас, он дает возможность понять основной принцип. Ну а дальше модифицируйте как Вам нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 15:37 |
|
MDI -ли :)
|
|||
---|---|---|---|
#18+
kill_zdm, Уже говорил. Нет халявного. Условно халявный - телерик. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 15:38 |
|
MDI -ли :)
|
|||
---|---|---|---|
#18+
Petro123kill_zdm, Уже говорил. Нет халявного. Условно халявный - телерик. Ну это мы про грид говорили ) А AvalonDock, что то смотрю, но понять не могу, вроде то да не то ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 15:43 |
|
MDI -ли :)
|
|||
---|---|---|---|
#18+
kill_zdm, Если не таб интерфейс но типа прям как VS в целом подошел бы, но там как то не понятно пока для меня или совсем не то ... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 15:45 |
|
MDI -ли :)
|
|||
---|---|---|---|
#18+
kill_zdm, Там есть все чо душа желает. И докирование как студии. Удачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 15:58 |
|
MDI -ли :)
|
|||
---|---|---|---|
#18+
kill_zdm, Забудь слово контейнер на время. И вспомни слово wysiwyg ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 18:22 |
|
MDI -ли :)
|
|||
---|---|---|---|
#18+
kill_zdmДа обычный интерфейс, вот это на девекспресс накидал на скорую руку. Тут на табах, с возможностью отделения окон их привязки и т.д. Крутяк конечно, но дорогое удовольствие. Собственно можно без этих наворотов, хотя что то вроде. Цель -просто окно контейнер, в котором будут всякие справочники и док-ты вызываться из менюшки. скрин mainWindow дай. Первое открытие. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 18:25 |
|
MDI -ли :)
|
|||
---|---|---|---|
#18+
Petro123, Сейчас не у компа, но просто форма (mainwindow.xaml дефолтная после создания wpf роекта) как userinterface на весь экран с менюшками. Через мин 30 буду дома скину полный расклад. Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 18:39 |
|
MDI -ли :)
|
|||
---|---|---|---|
#18+
kill_zdm, Ну вот и дашь. Не беги. А профи тут подскажут как визуально, в статике, WYSIWYG ее собрать. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 18:46 |
|
|
start [/forum/topic.php?fid=21&msg=39807662&tid=1440332]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 137ms |
0 / 0 |