2014-12-18 5 views
0

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

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

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

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

ответ

1

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

Короче говоря, ваше решение, чтобы добавить свой ContentControl в обычае Window и сделать что появляются на вершине.

+0

Я действительно боялся, что может быть так. Я буду ждать еще нескольких ответов, попробую кое-что из них и, скорее всего, создаст новый вопрос, так как я действительно не знаю, как сделать окно видимым без полей (также исключая '- [] X' вверху справа), а также не указывать в панели задач Windows. Вероятно, эта проблема будет иметь более низкий приоритет, поскольку в нашем проекте еще есть какие-то вещи перед праздниками. –

+1

Пожалуйста, не задавайте здесь повторяющиеся вопросы ... есть много примеров безграничных 'Window' уже в сети, например. [Окно без полей WPF с тенью VS2012 style] (http://stackoverflow.com/questions/14730311/wpf-borderless-window-with-shadow-vs2012-style). – Sheridan