ContentControl перед всеми окнами

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

Чего я хочу добиться, так это чтобы эти уведомления всплывали в самом начале всех окон Windows. Я знаю, что могу использовать Panel.ZIndex, чтобы сделать его передним элементом просмотра внутри самого (основного) окна, но я также хотел бы, чтобы он был поверх всплывающего окна, которое может быть перед ним.

Есть ли способ добиться этого? Я знаю, что мог бы поместить этот ContentControl с уведомлениями в отдельное окно вместо самого MainWindow, но тогда мне пришлось бы удалить границы и полосу окна, удалить его из панели задач Windows внизу и кучу других вещей чтобы он выглядел/действовал так же, как сейчас, чего я предпочитаю избегать.

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


person Kevin Cruijssen    schedule 18.12.2014    source источник


Ответы (1)


К сожалению, у вас нет выбора, так как единственный способ сделать так, чтобы ваш ContentControl отображался поверх других Window, — это поместить его в свой собственный Window и установить для его свойства TopMost значение true. Как бы то ни было, Panel.ZIndex будет влиять только на Z-индекс элемента управления внутри MainWindow... вы не можете настроить его так, чтобы он отображался выше уровня родительского элемента Window.

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

person Sheridan    schedule 18.12.2014
comment
Я действительно боялся, что это может быть так. Я подожду еще нескольких ответов, попробую кое-что и, скорее всего, задам новый вопрос, поскольку я действительно не знаю, как заставить окно выглядеть без полей (также исключая - [] X в в правом верхнем углу), а также пусть он не отображается на панели задач Windows.. Вероятно, этот вопрос будет иметь более низкий приоритет, так как у нас есть еще кое-что, что нужно сделать в нашем проекте перед праздниками. - person Kevin Cruijssen; 18.12.2014
comment
Пожалуйста, не задавайте здесь повторяющиеся вопросы... в сети уже есть много примеров Window без полей, например. окно WPF без полей с теневым стилем VS2012. - person Sheridan; 18.12.2014