Немодальное окно в WPF

В моем приложении WPF нужно показать немодальное окно. Я использую фреймворк MVVM Light. Люди предлагают разные библиотеки для этого, но есть ли какой-либо подходящий элемент управления для этого с помощью MVVM Light или собственной библиотеки WPF?

Нужно держать это немодальное окно всегда сверху.

Спасибо.


person Metallic Skeleton    schedule 24.06.2020    source источник


Ответы (1)


Чтобы создать немодальное окно, вам не нужно использовать фреймворк. В библиотеке WPF достаточно возможностей для его создания.

Самое быстрое решение — создать новый Xaml Window и в свойствах кода окна Xaml указать приоритет TopMost и установить для него значение true.

<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="NonModalWindow" Height="300" Width="300" TopMost="True">
    <Grid>
        <!---- Some element defined in your window ---->
    </Grid>
</Window>

После того, как вы создали это окно, остается только вызвать его.

new NonModalWindow().Show();

И если вы хотите превратить его в Modal window, вы можете использовать следующий код.

new NonModalWindow().ShowDialog(); // wooah a contradiction in the code

person M.B.    schedule 24.06.2020