|
Скрытие модального окна.
|
|||
---|---|---|---|
#18+
Я с очередным "детским" вопросом. Столкнулся с такой потребностью. Два окна. Из первого несколько раз вызывается второе в модальном режиме. После завершения работы второго управление возвращается в первое. Всё бы ничего, но во втором значительное количество контролов, состояние которых между между вызовами желательно сохранять. Понятно, что это можно сделать через сохранение данных в коде. Но гораздо проще было бы скрыть второе, чтобы вернулось управление в первое окно. Но в модальном режиме, скрыть окно нельзя. Какой наиболее простой и правильный способ для решения этого? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 21:57 |
|
Скрытие модального окна.
|
|||
---|---|---|---|
#18+
Если используется MVVM, то проблем нет, модель-то можно не убивать. Или речь идет о сохранении состояния скроллеров и тому подобное? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 21:59 |
|
Скрытие модального окна.
|
|||
---|---|---|---|
#18+
Shocker.ProЕсли используется MVVM, то проблем нет, модель-то можно не убивать. Или речь идет о сохранении состояния скроллеров и тому подобное? Да, состояния элементов окна. Данные понятно в модели и модели представления сохраняются. Просто не хотелось сохранять состояние каждого контрола. Вот и думаю об обходных путях. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 22:14 |
|
Скрытие модального окна.
|
|||
---|---|---|---|
#18+
Лично я никогда не делал несколько окон в WPF-приложениях. Либо вкладки, как в браузере, либо выводится некое диалоговое псевдоокно поверх всего содержимого основного окна - фактически прямоугольник с границами, а поля вокруг него затеняются полупрозрачностью. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 22:17 |
|
Скрытие модального окна.
|
|||
---|---|---|---|
#18+
Shocker.ProЛично я никогда не делал несколько окон в WPF-приложениях. Либо вкладки, как в браузере, либо выводится некое диалоговое псевдоокно поверх всего содержимого основного окна - фактически прямоугольник с границами, а поля вокруг него затеняются полупрозрачностью.Мне просто при работе второго окна нужно сохранять видимость первого. Информация из него упрощает работу во втором. Но изменять эту информацию пока открыто второе нельзя - возможны коллизии. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 22:26 |
|
Скрытие модального окна.
|
|||
---|---|---|---|
#18+
Eld HaspНо изменять эту информацию пока открыто второе нельзя - возможны коллизии.так заблокируй редактирование Window.IsEnabled=false. Либо можно поиграться с Focusable, если принципиально, чтобы не изменялся внешний вид ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 22:30 |
|
Скрытие модального окна.
|
|||
---|---|---|---|
#18+
Shocker.Pro...... так заблокируй редактирование Window.IsEnabled=false. Либо можно поиграться с Focusable, если принципиально, чтобы не изменялся внешний видТо есть вызывать второе обычным Show, а перед его скрытием разблокировать первое. Да, вариант. Только надо продумать как в первом узнать, что второе скрылось. При использовании ShowDialogs необходимость в этом не было. Подумаю.... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 22:41 |
|
Скрытие модального окна.
|
|||
---|---|---|---|
#18+
Роман где-то выкладывал свой менеджер окон. Попробуй поискать среди его постов в WPF ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 22:51 |
|
Скрытие модального окна.
|
|||
---|---|---|---|
#18+
создайте элемент управления, и открывайте (добавляйте в новое окно) его каждый раз в новом окне, он будет сохранять свое состояние. если использовать чисто модель, то не все состояния будут сохраняться. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 22:52 |
|
Скрытие модального окна.
|
|||
---|---|---|---|
#18+
Roman Mejtesсоздайте элемент управления, и открывайте (добавляйте в новое окно) его каждый раз в новом окне, он будет сохранять свое состояние. если использовать чисто модель, то не все состояния будут сохраняться.А где он будет жить между сеансами? Просто в переменной? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 22:57 |
|
Скрытие модального окна.
|
|||
---|---|---|---|
#18+
Shocker.ProRoman Mejtesсоздайте элемент управления, и открывайте (добавляйте в новое окно) его каждый раз в новом окне, он будет сохранять свое состояние. если использовать чисто модель, то не все состояния будут сохраняться.А где он будет жить между сеансами? Просто в переменной?........? Создать в коде и потом просто добавлять в окно.... Или, наоборот. В коде просто сохранить ссылку на него. При закрытии окна элемент не закроется? А при новом открытии присвоить элементу значение из ссылки. Такое, что - сработает? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 23:05 |
|
Скрытие модального окна.
|
|||
---|---|---|---|
#18+
Shocker.Pro, ну трудно сказать. где ему жить, зависит от ситуации. Точно такая же фигня есть в TabControl'е, так как вкладки в нём являются по сути не элементами управления, а шаблонами. Когда его переделывал, такие элементы управления генерировались внутри него и ссылки хранились на объект. Таким образом переключался уже не шаблон, а элементы управления с заданными шаблонами. Любой объект, можно сохранить в ресурсах, типа такого: Как видно из примера, CheckBox'ы к модели не привязаны, но их состояние сохраняется, сколько бы раз я не открыл окно. Естественно, если открыть 2а окна с этим элементом управления, будет плохо :) по этому, такой вариант лучше исключить. Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 23:54 |
|
Скрытие модального окна.
|
|||
---|---|---|---|
#18+
Roman MejtesТочно такая же фигня есть в TabControl'е, так как вкладки в нём являются по сути не элементами управления, а шаблонами.Ага, раз попытался использовать TabControl через ItemsSource - обплевался и сделал небольшую надстройку, которая добавляет вкладки кодом. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2018, 00:03 |
|
Скрытие модального окна.
|
|||
---|---|---|---|
#18+
Автор, так и не объяснил что за состояние если есть модель. Тебя ведь вспомнит за тобой программист за велосипед. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2018, 08:29 |
|
Скрытие модального окна.
|
|||
---|---|---|---|
#18+
Eld HaspShocker.ProЕсли используется MVVM, то проблем нет, модель-то можно не убивать. Или речь идет о сохранении состояния скроллеров и тому подобное? Да, состояния элементов окна. Данные понятно в модели и модели представления сохраняются. Просто не хотелось сохранять состояние каждого контрола. Вот и думаю об обходных путях.переведи. Не знаешь разницу модального, скрытого и нк модального? А также "всегда наверху"? Я как пользователь, всегда должен ожидать поведение ИС. А тут изобретаем полумодальное. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2018, 08:36 |
|
Скрытие модального окна.
|
|||
---|---|---|---|
#18+
Petro123Автор, так и не объяснил что за состояние если есть модель.Некоторые состояния контролов в модели не сохраняются, например состояние прокрутки скроллера. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2018, 10:16 |
|
Скрытие модального окна.
|
|||
---|---|---|---|
#18+
Shocker.ProPetro123Автор, так и не объяснил что за состояние если есть модель.Некоторые состояния контролов в модели не сохраняются, например состояние прокрутки скроллера.это всегда лет 20 руками делали в датасете либо немодал окно. Пользователь же не совсем дурак. Он понимает когда окно скрыто, а когда модальное. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2018, 12:05 |
|
Скрытие модального окна.
|
|||
---|---|---|---|
#18+
Кроме скролла все? А то выходит что в WPF как то сложно все с элементарными действиями. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2018, 12:07 |
|
Скрытие модального окна.
|
|||
---|---|---|---|
#18+
Petro123Кроме скролла все? А то выходит что в WPF как то сложно все с элементарными действиями.состояние раскрытия узлов дерева, элемент, на котором фокус, выделение в текстбоксах и т.д. и т.п. Petro123это всегда лет 20 руками делали в датасете либо немодал окно. Пользователь же не совсем дурак. Он понимает когда окно скрыто, а когда модальное.Какой-то бессвязный набор слов, причем тут вообще датасет и пользователь. Если ты в винформах выгрузишь окно, то контролы точно так же не сохранят свое состояние, так что какие у тебя претензии к WPF - непонятно. Привык бревна пилить ножовкой - тебе на электропилу и не стоит переходить ) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2018, 12:34 |
|
Скрытие модального окна.
|
|||
---|---|---|---|
#18+
Shocker.Proсостояние раскрытия узлов дерева, элемент, на котором фокус, выделение в текстбоксах и т.д. и т.п. вот если автор так скажет...про выделение в текстовом поле....и хочу его сохранить. То ему прямая дорога в НЕ модальное окно. Не очевидно? Будешь спорить? А то счас насоветуем...велосипедов. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2018, 13:23 |
|
Скрытие модального окна.
|
|||
---|---|---|---|
#18+
Petro123Shocker.Proпропущено... Некоторые состояния контролов в модели не сохраняются, например состояние прокрутки скроллера.это всегда лет 20 руками делали в датасете либо немодал окно. Пользователь же не совсем дурак. Он понимает когда окно скрыто, а когда модальное. Я сразу, написал что знаю как это "руками" в коде сделать. Интересовался нет ли другого более удобного способа. Кроме скролов на форме есть ещё элементы которые влияют друг на друга (выделения, затенения, разный вид отображения и т.п.). Но так как это только для визуального удобства я не выносил это в VM. Познакомился с WPF меньше 4 месяцев назад, с C# на месяц раньше. Поэтому и задаю "детские" вопросы чтобы "не изобретать велосипед", а пользоваться общепринятыми (если они есть) подходами к решению задач. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2018, 13:26 |
|
Скрытие модального окна.
|
|||
---|---|---|---|
#18+
Petro123вот если автор так скажет...про выделение в текстовом поле....и хочу его сохранить. То ему прямая дорога в НЕ модальное окно. Не очевидно? Будешь спорить?А я и не советую модальное окно, я их не люблю. Роман уже дал адекветный ответ, тут внезапно проснулся Петя, и начал пытаться выяснять, о чем тут вообще взрослые дяди говорят. Вот видишь, человек 4 месяца в WPF и уже гораздо опытней тебя ) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2018, 13:30 |
|
Скрытие модального окна.
|
|||
---|---|---|---|
#18+
Eld HaspНо так как это только для визуального удобства я не выносил это в VM. это выносят в настройки окна которые сохраняются на диск. Например, текущая вкладка из многих вкладок. Положение окна. Разумеется выделение текстовых полей не сохраняют в настройках. Просто меняют с модального на не модальный. Логично? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2018, 13:39 |
|
Скрытие модального окна.
|
|||
---|---|---|---|
#18+
Shocker.ProА я и не советую модальное окно, я их не люблю. Роман уже дал адекветный ответ, тут внезапно проснулся Петя, и начал пытаться выяснять, о чем тут вообще взрослые дяди говорят. Вот видишь, человек 4 месяца в WPF и уже гораздо опытней тебя ) По результатам экспериментов. Наиболее близкое поведение к желаемому получилось добиться используя Ваш совет о запрете редактирования в окне. Он проще встраивается в уже созданное. А на будущее возможность варианта Романа, конечно, буду учитывать. Это более основательный подход. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2018, 13:41 |
|
|
start [/forum/search_topic.php?author=Mixon&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 10678ms |
total: | 10838ms |
0 / 0 |