Showing two copy of dialog wpf mvvm

119 Views Asked by At

So I am developing a two-screen application using wpf with mvvm light. I want to mirror them as much as possible. However, I run into problem with the showdialog for windows. Because ShowDialog will put the dialog window into focus and require the user to interact with it first, I cannot create another copy of it on another the second screen. Is there anyway I can create two identical dialog window showing up at the same time?

Thank you so much for your help!

2

There are 2 best solutions below

0
Karen Payne On

May be TaskDialog where the trick to go modeless is IntPtr.Zero for owner parameter. There may be one issue, as shown below the dialog will be center screen while using a third parameter you can set the owner e.g. a button for instance or other control. So this may or may not work for you.

public static void InformationModeless( string heading, string buttonText = "Ok")
{

    TaskDialogButton okayButton = new(buttonText);

    TaskDialogPage page = new()
    {
        Caption = "Information",
        SizeToContent = true,
        Heading = heading,
        Buttons = new TaskDialogButtonCollection() { okayButton }
    };

    TaskDialog.ShowDialog(IntPtr.Zero, page);

}
0
San On

Instead of ShowDialog() use Show() which displays the window in a non-modal way.