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

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

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

Вот дерьмовая работа в Photoshop, показывающая, что мне нужно:

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

Нет клиентской зоны

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

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

1 ответ

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

не WindowStyle = "None"
ShowInTaskbar = "False"
AllowsTransparency = "True"
Background = "Transparent"

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

Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"
Другие вопросы по тегам