繁体   English   中英

WPF ShowDialog与另一个活动窗口

[英]WPF ShowDialog with another Window Active

当我的MainWindow启动时,我会自动显示第二个“ CountdownWindow”。 CountdownWindow是TopMost。

MainWindow和CoutdownWindow

当同时显示主窗口和倒计时窗口时,用户可以单击按钮以使用ShowDialog启动第三个模态窗口。

对话框窗口处于活动状态,但CountdownWindow未处于活动状态

当对话框处于活动状态时,我希望用户也可以与最顶部的CountdownWindow进行交互(即,最小化,最大化,关闭或移动它),但是这是不可能的。

从单独的进程或单独的线程启动“对话”窗口是否可以解决此问题?

如果需要,这是我代码的相关部分

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        var dialogWindow = new DialogWindow();
        dialogWindow.ShowDialog();
    }

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        var countDownWindow = new CountdownWindow();
        countDownWindow.Owner = this;
        countDownWindow.Show();
    }
}

<Window x:Class="WpfTestBase.CountdownWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:WpfTestBase"
    mc:Ignorable="d"
    Topmost="True"
    Title="CountdownWindow TopMost=True" Height="300" Width="400">
<Grid>

</Grid>

为什么不只设置Dialog.Owner = MainWindow,然后设置Dialog.Show(),而不是Dialog.ShowDialog()? 然后它将停留在主窗口的顶部,但不会像ShowDialog()那样阻塞主线程。 ShowDialog的全部要点是模态的,并阻塞UI主线程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM