3 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как восстановить свернутое окно в Code-behind?

Как восстановить свернутое окно в Code-behind?

Как восстановить свернутое окно?
Желательно через API


© ( 2008-08-17 02:32 ) [1]

> [0] demon © (17.08.08 02:28)

Может быть ShowWindow и SW_RESTORE ?


demon © ( 2008-08-17 02:44 ) [2]

Я тоже так думал, но не работает.


© ( 2008-08-17 02:50 ) [3]

> [2] demon © (17.08.08 02:44)

Что не работает?
Не разворачивает?
Или потом не сворачивает? 🙂


© ( 2008-08-17 02:55 ) [4]

> Желательно через API

К чему такое желание?
Если написал [2], то будь добр — подробнее опиши задачу.
Почему на АПИ, что за окно требуется восстановить.

Обычное окно TForm, своей же программы.
Окно просто не восстанавливаеться.


demon © ( 2008-08-17 04:21 ) [6]

Восстанавливаеться нормально, если вызывать с другой форму (другого pas файла)
А посылать ShowWindow(Handle, SW_RESTORE) даже если окно не свернуто, это не приведет к ошибкам?
Или как узнать что окно свернуто?


© ( 2008-08-17 13:09 ) [7]

> [6] demon © (17.08.08 04:21)
> А посылать ShowWindow(Handle, SW_RESTORE) даже если окно
> не свернуто, это не приведет к ошибкам?

Нет

> Или как узнать что окно свернуто?

IsIconic
В VCL IsIconic»ом проверять нужно окно Application . вроде.


DVM © ( 2008-08-17 23:49 ) [8]


> demon © (17.08.08 02:28)
>
> Как восстановить свернутое окно?
> Желательно через API

Ты делаешь аналог панели задач, причем на API, судя по вопросам твоим многочисленным?


demon © ( 2008-08-18 00:38 ) [9]

нет, я делаю всего лишь mp3 плеер.
а установленый аналог панели задач меня устраивает — BlackBox называеться 😉

Читать еще:  Здравствуйте. Как восстановить водно солевой баланс?


> demon © (18.08.08 00:38) [9]
>
> нет, я делаю всего лишь mp3 плеер.
>

Нет бога кроме НульСофта, а ВинАмп — пророк его!
🙂


DVM © ( 2008-08-18 15:05 ) [11]


> demon © (18.08.08 00:38) [9]
>
> нет, я делаю всего лишь mp3 плеер.

а, если не секрет, скажи, зачем плееру знать, что стартовало полноэкранное приложение?


demon © ( 2008-08-18 18:10 ) [12]

чтобы не выбрасывать информационные окошки когда юзер занят игрой.


Loginov Dmitry © ( 2008-08-18 22:28 ) [13]

> чтобы не выбрасывать информационные окошки когда юзер занят
> игрой.

Зачем вообще плееру выбрасывать какие-либо информационные окошки?


Renegat © ( 2008-08-19 00:18 ) [14]

http://webfile.ru/2168884
Тру-плеер вообще должен быть невидимым!
Вот например тот которым пользуюсь я.
Всё управление — по меню иконки в трэе.
Щёлкаете левой кнопкой мыши — и вашим глазам предстаёт весь богатый функционал =)
Умеет играть (в случайном порядке) только mp3-файлы из каталога, где находится сам (не включая подкаталоги).
Либо из того каталога, путь к которому указан как первый параметр запуска.
При отсутствиии музыки в папке — автоматически выгружается.
Енджой %)

Ну, хорош рекламы, мне бы мою идею воплотить.
Вобщем ясно — что ничего не ясно.
Всем спасибо.


Германн © ( 2008-08-19 00:54 ) [16]


> demon © (19.08.08 00:50) [15]
>
> Ну, хорош рекламы, мне бы мою идею воплотить.
>

Федя — А может не надо?
Шурик — Надо Федя. Надо!
🙂
(с) Операция «Ы».

5 способов достать окно Windows, которое скрылось за пределами экрана

Перезагрузка не поможет, ведь система запоминает положение окон.

Обычно все ваши окна либо находятся перед вами, либо свёрнуты в панель задач. Но Windows — штука загадочная, и в ней иногда происходят вещи, которые происходить не должны. Например, порой открытые окна появляются за пределами видимого экрана.

Происходит это чаще всего, если вы используете ноутбук с подключенным внешним монитором или несколько дисплеев одновременно. Но и на стационарном компьютере с одним экраном такое тоже встречается.

Читать еще:  Как узнать лицензионный ключ установленного Навитела - Страница 2 - GPS навигация Сибири

Вы видите нижний край окна и не можете добраться до заголовка, где и располагаются кнопки управления. Вот пара способов, как решить проблему.

1. Разверните окно через «Панель задач»

Наведите мышь на значок открытой программы на панели задач. Появится превью окна. Щёлкните по нему правой кнопкой мыши и нажмите «Развернуть». Готово.

2. Используйте сочетание клавиш

Нажмите Alt + Tab и клавишей Tab выберите нужное окно. Затем нажмите Alt + Пробел + X. Это развернёт окно на весь экран. Затем его можно переместить куда надо, отрегулировать размер или закрыть.

3. Расположите окна каскадом

Щёлкните правой кнопкой мыши по панели задач. Выберите «Расположить окна каскадом». Все открытые программы появятся перед вами, и можно будет рассортировать их.

4. Измените разрешение экрана

Щёлкните правой кнопкой мыши на рабочем столе и нажмите «Параметры экрана». В открывшемся окне измените разрешение на какое-нибудь другое, доступное вам. Windows переместит все вышедшие за пределы экрана окна обратно на дисплей. После этого можно вернуть то разрешение, что было у вас по умолчанию.

5. Включите обнаружение дисплеев

Нажмите правой кнопкой мыши на рабочем столе и выберите «Параметры экрана». Затем щёлкните «Обнаружить». Windows вернёт пропавшие окна на экран. Помогает, если проблема возникла из-за того, что у вас несколько мониторов.

Как восстановить свернутое окно в Code-behind?

Это несколько обыденный вопрос, но мне кажется, что в WPF нет встроенного метода для него. Кажется, есть только WindowState свойство, которое является перечислением, не помогает, так как я не могу сказать, было ли окно в Normal или Maximized состояние перед минимизацией.

при нажатии на значок панели задач окно восстанавливается так же, как ожидалось, предполагая его предыдущее состояние, но я не могу найти какой-либо определенный метод, который это делает.

Так что я мне было интересно, если я просто что-то упускаю или мне нужно использовать некоторую пользовательскую логику взаимодействия.

(я опубликую свое текущее решение в качестве ответа)

7 ответов

Не уверен, что это будет работать для всех, но я столкнулся с этим сегодня и кто-то по команде предложил»вы пробовали нормальный«?

Читать еще:  Как нормализовать работу кишечника, способы восстановить и наладить моторику кишечного тракта

оказывается, он был прав. Следующие вроде красиво восстановить окно:

это отлично работает, при необходимости восстанавливая окно до максимального значения. Кажется критичным сначала проверить минимизированное состояние как вызов WindowState.Нормальный второй раз «восстановить» окно в его не развернутом состоянии.

надеюсь, что это помогает.

точка зрения WPF заключается в том, что это функция ОС. Если вы хотите возиться с функциями ОС, вам, возможно, придется испачкать руки. К счастью, они снабдили нас необходимыми инструментами. Вот метод un-minimize, который принимает окно WPF и использует WIN32 для достижения эффекта без записи какого-либо состояния:

SystemCommands класс имеет статический метод, называемый RestoreWindow это восстанавливает окно в предыдущее состояние.

[Примечание : SystemCommands класс является частью .NET 4.5+(MSDN Ref) для проектов, предназначенных для более ранних версий Framework, можно использовать расширение оболочки WPF (MSDN Ref)]

вот как я могу восстановить его прямо сейчас: я обрабатываю StateChanged событие для отслеживания последнего состояния, которое не было Minimized

чтобы восстановить, я должен установить это WindowState соответственно:

по какой причине

не работал на меня. Поэтому я использовал следующий код и он работал..

Хммм, принятый ответ не работа для меня. «Развернутое» окно, когда его вспоминают из панели задач, в конечном итоге центрируется (отображается в нормальном размере, даже если его состояние развернуто) на экране, и такие вещи, как перетаскивание окна по строке заголовка, в конечном итоге не работают. В конце концов (в значительной степени методом проб и ошибок) я понял, как это сделать. Спасибо @H. B. и @Eric Liprandi за то, что привели меня к ответу! Код следующий:

в собственных окнах вы можете восстановить предыдущее состояние окна с помощью ShowWindow(SW_RESTORE) :

активизирует и отображает окно. Если окно минимизировано или максимизировано, система восстанавливает его исходный размер и положение. Приложение должно указывать этот флаг при восстановлении свернутого окна.

Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector