Каков наилучший способ "затемнить" фон winform при отображении диалога? - PullRequest
6 голосов
/ 29 марта 2010

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

Ответы [ 3 ]

11 голосов
/ 29 марта 2010

Свойство Opacity - это то, что вам нужно, чтобы затемнить форму. Вам нужно создать оверлей, мой код в этой теме показывает, как это сделать.

Будьте внимательны, чтобы не показать, что ваша программа отображает приглашение UAC. Хотя, возможно, это уместно в браузерах, у пользователя никогда не возникнет проблем с распознаванием того, что окно, наложенное на диалог, отключено. Органы управления рисуют себя по-разному, чтобы было понятно.

2 голосов
/ 29 марта 2010

Почему бы просто не установить непрозрачность около 50% от родительского окна непосредственно перед запуском модального диалога, а затем вернуться к 100%, когда модальное диалоговое окно закрыто? Это не совсем то, что вы просите, выполняет ту же функцию для конечного пользователя.

Если вы хотите сделать что-то наподобие вашего примера JQuery, вам действительно нужно сделать cap / augment / set как фоновую идею, которую вы описали.

0 голосов
/ 22 января 2016

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

Скачать проект

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...