[英]WPF ShowDialog with another Window Active
当我的MainWindow启动时,我会自动显示第二个“ CountdownWindow”。 CountdownWindow是TopMost。
当同时显示主窗口和倒计时窗口时,用户可以单击按钮以使用ShowDialog启动第三个模态窗口。
当对话框处于活动状态时,我希望用户也可以与最顶部的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.