Как сделать окно поверх другого на маке

Добавил пользователь Алексей Ф.
Обновлено: 17.09.2024

Я хочу, чтобы мое окно было поверх всех других окон только в моем приложении. Если я устанавливаю свойство TopMost окна, он становится поверх всех окон всех приложений, и я не хочу этого.

ОТВЕТЫ

Ответ 1

Вам нужно установить свойство владельца окна.

Вы можете показать окно через showdialog, чтобы заблокировать ваше главное окно, или вы можете показать его в обычном режиме, и иметь его поверх владельца без блокировки владельца.

вот codeexample части кода. Я оставил все очевидные вещи:

Ответ 2

Вместо этого вы можете использовать всплывающее окно, которое всегда будет TopMost, украсить его подобно окну и полностью прикрепить его приложением, обработать событие LocationChanged вашего главного окна и установить для свойства IsOpen Popup значение false.

Изменить:

Я надеюсь, что вы хотите что-то вроде этого:

Надеюсь, это поможет!

Ответ 3

Ответ 4

Просто сделать это в XAML, и удивился, что никто еще не отправил этот ответ. В следующем примере Window определяется в ResourceLibrary (обратите внимание на x:Key ), но вы также можете использовать эту привязку XAML на автономном ресурсе WPF Page .

Ответ 5

используйте метод Activate(). Это пытается вывести окно на передний план и активировать его. например Window wnd = new xyz(); wnd.Activate();

Ответ 6

Лучший способ установить эти два события для всех окон вашего приложения:

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

Ответ 7

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

В любом случае, я пойду вперед и опубликую решение, которое сработало для меня.

Я создал обработчики событий для Window.Activated и Window.Deactived в окне, которое должно было быть Topmost в отношении моего приложения.

Это отлично работает для меня. Надеюсь, это полезно кому-то другому.: О)

Ответ 8

В всплывающем окне перегружает метод Show() с параметром:

Затем в главном окне вызовите ваш перегруженный метод Show():

Ответ 9

Ответ 10

Я OP. После некоторых исследований и тестирования ответ:

Нет, нет никакого способа сделать именно это.

Ответ 11

Вот как это сделать: сделайте свое "самое верхнее" окно подписаться на ваши другие окна GotFocus и LostFocus и используйте в качестве обработчиков следующих событий:

Ответ 12

Вы можете добавить это в свои теги Windows

Затем вы также можете отобразить его, если хотите, чтобы ваши пользователи подтвердили его, чтобы продолжить

Сначала попробуйте его без параметров TopMost и посмотрите результаты.

Ответ 13

Ответ 14

Я тоже столкнулся с той же проблемой и последовал за Google по этому вопросу. Недавно я нашел, что для меня это работало.

Ответ 15

Как насчет htis:

Ответ 16

Я столкнулся с этой проблемой. У меня есть настольное приложение, в котором есть несколько окон WPF, и мне нужен был собственный экран заставки, который будет поверх других окон только в моем приложении. Никакие другие окна не открываются, когда мой экран заставки появляется, но я открываю MainWindow из моего заставки после некоторой аутентификации. Поэтому я просто сделал что-то похожее на то, что сделал @GlenSlayden, но в коде, поскольку, как я уже сказал, MainWindow не для меня привязан к:

Теперь, когда моя программа загружает все остальные окна из MainWindow, экран заставки находится сверху, но пока программа выполняет аутентификацию пользователя, она не самая верхняя, поэтому вы можете щелкнуть по какой-либо другой программе, и она скроет за этим. Это самое близкое, что я мог бы найти для решения этой проблемы. Он не идеален, потому что он по-прежнему проходит поверх всех других приложений, пока моя программа загружается после аутентификации, но это не очень долго в моем случае.

Ответ 17

1) Начать новый проект.

2) перейдите в Project, затем New Windows form, затем выберите Windows Form и назовите Splash.

3) установить размер, фон, текст и т.д. По желанию.

4) В свойствах формы Splash.cs установите начальную позицию: CenterScreen и TopMost: true

5) form1 добавить "используя System.Threading;"

6) Form1 в классе добавить "Splash splashscreen = new Splash();"

7) form1 добавить "splashscreen.Show();" и "Application.DoEvents();"

8) form1 В разделе События >> Фокус >> Активировано добавить "Thread.Sleep(4000); splashscreen.Close();"

9) Splash.cs добавить в "Public Splash" добавить "this.BackColor = Color.Aqua;"/можно использовать любой цвет

10) Это код для Form1.cs

11) это код на Splash.cs

12) Я обнаружил, что если вы ничего не делаете в заставке, то экран не будет оставаться верхним в течение времени, которое необходимо активировать первой форме. Счетчик потоков исчезнет через x секунд, поэтому ваша программа работает нормально.

Ответ 18

Я просто столкнулся с той же проблемой и обнаружил, что не могу настроить владельца с помощью MVVM, не вызывая сбои приложения в работе. У меня есть модель представления диспетчера окон, в которой есть команда для открытия окна с помощью URI окна - и я не смог установить владельца App.MainWindow без сбоя приложения.

Поэтому - Вместо того, чтобы устанавливать владельца, я связал свойство TopMost окна со свойством в моей модели представления Window Manager, которое указывает, активно ли приложение в данный момент. Если приложение активно, окно находится сверху, как мне хотелось бы. Если он не активен, другие окна могут его закрыть.

Вот что я добавил в свою модель просмотра:

Вот XAML, который его реализует (я использую MVVM light с ViewModelLocator в качестве статического ресурса в моем приложении под названием Locator):

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


Режим Картинка в картинке на Mac спасает.

Сценариев использования режима Картинка в картинке ну очень много. Изучаете курсы английского и параллельно конспектируете занятия или просто решили поставить ролик самых честных новостей во время работы в офисе. Все это без проблем позволяют сделать большинство популярных браузеров.

Как смотреть видео в отдельном окне на Mac

Сразу же скажем, что смотреть видео Картинка в картинке можно не только в родном Safari, но и в других браузерах. Например, в Chrome. Интересно, что реализована данная фича у Apple и у Google немного по-разному.

Чтобы открыть видео в новом окне на Mac, вам необходимо:

  • Открыть Safari.
  • Перейти в интересующее вас видео на любом сайте.
  • Нажать кнопку воспроизведения.
  • Далее необходимо нажать двумя пальцами на иконку громкоговорителя.


Иконка громкоговорителя находится в верхнем правом углу.


Режим Картинка в картинке в браузере Safari.


Картинка в картинке в Safari на Mac.

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

Подписывайтесь на нас в Яндекс.Дзен, там вы найдете много полезной и интересной информации из мира мобильных технологий.

Режим картинка в картинке в Chrome

Раньше я думал, что данная фишка работает только в Safari, но оказалось, что Google Chrome справляется с ней ничуть не хуже. И хоть я бы не рекомендовал вам пользоваться Chrome на Mac, Картинка в картинке здесь тоже работает:

  • Открываем браузер Chrome на Mac.
  • Запускаем любой интересующий вас видеоролик.
  • Нажимаем двумя пальцами на видео, высвечивается меню настроек.


Картинка в картинке в Chrome на Mac.


Картинка в картинке в Chrome на Mac (2).


Картинка в картинке в Chrome на Mac (3).

Признаться честно, в Google Chrome мне пользоваться подобной фичей нравится больше. Хотя бы потому, что окно имеется больше вариантов с размером. Здесь доступна как совсем маленькая картинка, на которой едва можно что-то разобрать, так и большая. Единственное, что кнопка Play уж очень маленькая, но это не критично.

Еще интересно, что Chrome разрешает перетаскивать видео не только по углам (как в Safari), но и ставить его, например, по центру. То есть видео никак не закреплено. Куда захотите, туда и поставите.

Знали? Пользуетесь? Может быть в вашем арсенале завалялось еще парочку лайфхаков по поводу работы Safari? Обязательно делитесь в нашем Телеграм-чате или в комментариях ниже. Будет интересно прочесть.

Вместе с iOS 10 на конференции WWDC была представлена macOS Sierra – операционная система следующего поколения с новыми функциями для ещё более интеллектуальной и полезной работы.

В macOS Sierra пользователи Mac могут работать с одним окном и просматривать контент в другом. ОС позволяет расположить видео из Safari или iTunes в отдельном окне поверх всех остальных на время работы и даже менять его размер, перетаскивать или закреплять в любом углу экрана. Видео остаётся наверху, даже когда вы работаете в другом окне, поэтому вы ничего не упустите.

Работа с видео в оконном режиме всегда была доступна в OS X, однако гораздо приятнее наблюдать в углу экрана безрамочное окно поверх всего видео, как в iOS. Включить эту функциональность в macOS Sierra довольно просто.

Таким образом в macOS Sierra можно вывести на рабочий стол небольшое аккуратное окно, транслирующее видео из YouTube. Окно можно масштабировать и перемещать в любую часть экрана.

С Helium и Picture in Picture можно выводить на рабочий стол окно, транслирующее видео, как с локального хранилища, так и из разных потоковых сервисов, включая YouTube, Netflix, Amazon или Hulu.

mte-keep-на плаву с особенностями

Большинство, если не все, дистрибутивы Linux имеют функцию "Всегда поверх других", которая позволяет закрепить окно приложения поверх других. Для macOS эта безумно полезная функция была недоступна по умолчанию, но ее можно добавить с помощью приложения Afloat.

Afloat - это простое приложение, которое добавляет решение "Всегда наверху" в macOS. Он использует SIMBL (сокращение от SIMple Bundle Loader), который представляет собой загрузчик расширения приложений для Mac OS X, который позволяет сторонним разработчикам изменять и добавлять функциональные возможности в приложения, разработанные в среде Какао, без доступа к исходному коду.

В этой статье мы покажем вам, как установить и использовать Afloat в macOS Sierra.

Монтаж

Установка SIMBL

На плаву для работы требуется SIMBL. Существуют различные источники для SIMBL, и тот, который, как я обнаружил, работает в macOS Sierra, - это mySIMBL.

1. Перейдите на страницу mySIMBL на Github и загрузите последнюю версию mySIMBL.

2. Извлеките файл "mySIMBL_master.zip". Теперь вы должны увидеть приложение mySIMBL.

на плаву-извлечено-mysimbl-приложение

3. Дважды щелкните по нему, чтобы запустить. Появится окно с вопросом, хотите ли вы переместить его в Приложения. Нажмите "Переместить в папку приложений".

afloat-install-mysimbl-переместить в папку приложений

4. Затем может появиться другое всплывающее окно с предложением обновить / установить SIMBL. Нажмите "Установить".

на плаву-установка-mysimbl

В некоторых случаях установка может быть невозможна из-за защиты целостности системы Mac. Перед запуском установки необходимо отключить защиту целостности системы.

Чтобы отключить защиту целостности системы:

  • Перезагрузите ваш Mac. Когда появится экран запуска, нажмите и удерживайте клавиши "Command + R", пока на экране не появится логотип Apple.
  • Когда загрузка завершится и вы перейдете в режим восстановления, нажмите "Утилиты -> Терминал".
  • В окне терминала введите csrutil disable и нажмите Enter.
  • Перезагрузите ваш Mac.

Примечание: чтобы снова включить защиту целостности системы, повторите описанные выше действия, но измените команду на csrutil enable . После установки mySIMBL рекомендуется повторно включить защиту целостности системы.

Установка на плаву

1. Теперь, когда вы установили mySIMBL, перейдите на эту страницу Github и загрузите весь репозиторий Afloat.

на плаву-скачать-на плаву-репо

2. Извлеките zip-файл и откройте папку в Finder. Перейдите в папку "пакет". Вы должны увидеть два файла: "Afloat.bundle" и "SIMBL-0.9.9.pkg".

папка на плаву

3. Пока приложение mySIMBL все еще работает, перетащите файл "Afloat.bundle" в окно приложения mySIMBL. Убедитесь, что Afloat отображается в окне подключаемых модулей mySIMBL и рядом с ним есть зеленая точка.

на плаву-установлен-успешно

4. Перезагрузите ваш Mac. На плаву теперь должен работать.

Использование Afloat, чтобы сделать окно приложения "Всегда наверху"

Чтобы сделать окно приложения "Всегда наверху", нажмите в меню пункт "Окно" и выберите "Сохранить на плаву".

активация на плаву

Обратите внимание, что Afloat не работает со всеми приложениями (например, Firefox). Он работает только для приложений с поддержкой SIMBL, поэтому не удивляйтесь, если вы не увидите функцию "Оставаться на плаву".

Помимо сохранения на плаву, вы также можете установить прозрачность окна вашего приложения. Установите его через меню "Окно -> Прозрачность -> Прозрачность".

плавучесть-прозрачность

Заключение

Функция "Всегда наверху" помогла мне повысить продуктивность за счет того, что необходимая информация всегда была под рукой, так что мне не приходилось каждый раз переключать окно приложения. Благодаря Afloat теперь вы можете добавить на Mac функцию "Всегда наверху" и повысить производительность.

8 комментариев

Спасибо за подробную информацию! Всегда держать окно на плаву - это абсолютно необходимый элемент для ведения заметок при одновременном исследовании нескольких источников. Удивительно, что он не входит в стандартную ОС.

Направления были очень точными, и я был на плаву в кратчайшие сроки - спасибо за отличную информацию. Я действительно хотел установить Afloat для приложения (Excel), которое его не поддерживает, поэтому я хочу, чтобы предупреждение о том, что это не будет работать для всех приложений, было заявлено до того, как я прошел через трудности с установкой (я помню, как использовал Afloat лет назад, и тогда казалось, что он работает во всех приложениях?)

Итак, я выполняю все эти шаги, и вчера вечером он работал нормально, но после того, как я снова включил SIP, сегодня утром я разбудил свой Mac и не смог найти Afloat в Windows (хотя в mySIMBL Afloat горит зеленый свет). Означает ли это, что mySIMBL / Afloat будет работать только при отключении SIP? но, idk, безопасно ли отключать SIP с этого момента только потому, что я хочу использовать Afloat?

Спасибо за инструкции по загрузке и действительно полезное приложение. Это позволяет мне поместить приложение для настройки гитары на партитуру на экране во время занятий музыкой. Если я хочу изменить счет, тюнер остается наверху. Действительно полезно, когда у вас на коленях музыкальный инструмент. Еще одна полезная функция - возможность оставлять тюнер слегка полупрозрачным, но становиться непрозрачным (полностью сверху), если я нажимаю на него. Для этого перейдите в "Окно". "Отрегулируйте эффекты". "Отрегулируйте прозрачность" на ползунке и установите флажок "Сделать непрозрачным, пока я работаю над этим".

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

Я до сих пор не понимаю, почему Apple не внедрила собственную версию этого в свою ОС. Это такая важная особенность. Но я думаю, как всегда, ответ на этот вопрос: потому что… Apple.

SIMBL устанавливается, но не запускается. Как запустить SIMBL ??

Вы можете запустить его, просто дважды щелкнув по нему (в папке Applications).

Это действительно здорово! Давно искал такое приложение. Но Simble не хочет устанавливать. Я полагаю, что тот факт, что у меня есть активное файловое хранилище, может иметь к этому какое-то отношение? В таком случае, как вы думаете, сработает ли я, если я отключу хранилище файлов, отключу защиту целостности системы, попробую установить simble и на плаву, а затем снова включу защиту целостности системы и хранилище файлов?

Читайте также: