Как в WPF создать диалоговое окно (т.е. серый фон без рамки вокруг клиентской области)? - PullRequest
1 голос
/ 04 августа 2011

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

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

Вот дрянное задание в Photoshop, показывающее, что мне нужно: Примечание : Я не за самими содержимым ящика сообщений - например, значком, кнопками, сообщением и т. Д. - я спрашиваю только о том, как подавитьклиентская область появляется в любом окне.Я просто использовал ящик сообщений в качестве примера, когда кто-то связался с ним в своем ответе.

No client area

Как вы можете видеть (или, скорее, не можете), естьнет видимого разграничения клиентской области.

Раньше все было так просто в WinForms, но WPF поставил меня в тупик.Кто-нибудь?

1 Ответ

2 голосов
/ 04 августа 2011

Я не уверен, что вы после.Вы хотите, чтобы только элементы управления в вашем диалоге были видны с границей диалога и прозрачным фоном?Если это так, попробуйте эти настройки в диалоговом окне:

WindowStyle = "Нет"
ShowInTaskbar = "False"
AllowsTransparency = "True"
Background = "Transparent"

Если вы хотите, чтобы цвет фона вашего диалогового окна был Winform System.Control без рамки, установите Background вашей формы следующим образом (вместо прозрачного):

Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"
...