【问题标题】:WPF disable main window while second window is open until it closedWPF 在第二个窗口打开时禁用主窗口,直到它关闭
【发布时间】:2015-01-23 03:27:25
【问题描述】:

我有一个 WPF 应用程序,它有一个主窗口和一个可以从主窗口中的按钮打开的第二个窗口。我希望禁用主窗口,而第二个窗口在 Visual Studio 中作为“关于”窗口打开。

【问题讨论】:

    标签: c# wpf wpf-controls


    【解决方案1】:

    尝试使用ShowDialog method 而不是Show 以将第二个窗口作为对话框打开。

    1. 您已经有一个带有窗口的 WPF 项目。这个应用程序应该可以工作。

    2. 右键单击项目并添加新窗口。你把它命名为 Window1.xaml

    3. 您现在会注意到 Window1.xaml 和 Window1.xaml.cs 添加到您的项目中。 (窗口的类名是 .xaml.cs 文件中的 Window1,它派生自 Window;也是一个部分类)

    4. 打开 Window1 的 XAML 文件 (Window1.xaml) 并添加您的控件。像对待任何其他窗口一样对待它并编写代码。

    5. 现在在您的主窗口(第一个)中添加一个按钮,单击该按钮应显示新创建的窗口。

    对于 Click 处理程序中的那个,......

    var newWindow = new Window1();
    newWindow.ShowDialog();
    

    这个Window1 应该是您的“关于”页面的设计。使用ShowDialog(); 调用它会禁用其他窗口,唯一的活动窗口将是您的关于页面。

    【讨论】:

    • 当您打开 about 窗口时,它将作为对话框打开,所有其他窗口都被禁用。 MSDN 说,“ShowDialog 显示窗口,禁用应用程序中的所有其他窗口,并仅在窗口关闭时返回。这种类型的窗口称为模态窗口。模态窗口主要用作对话框。”
    • 非常感谢 Karthik Nishanth!!!!有用 !!!顺便说一句,有什么方法可以在 window1 打开和关闭时改变主窗口不透明度以将不透明度更改为原始?
    • 如果我的答案正确,请通过检查我的答案附近的勾号来支持我的答案
    • 另外,添加一个新问题,用于在打开模式窗口时更改不透明度。
    【解决方案2】:

    ShowDialog()Show() 方法之间存在差异。 ShowDialog() 使子窗口处于活动状态并保持活动状态,直到它关闭;但是,Show() 方法会打开一个新窗口并将其视为一个单独的实体。在这种情况下,每次点击都会启动一个新窗口。

    例如

    Window1 childWin= new Window1();
    childWin.ShowDialog();
    OR
    childWin.Show();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-01
      • 1970-01-01
      • 2023-03-31
      • 2015-01-23
      相关资源
      最近更新 更多