WPF 对话框

17 Mar 2025 | 5 分钟阅读

独立应用程序包含主窗口,它们将显示应用程序的数据。 独立应用程序将获得处理的功能,该处理将通过用户界面机制(例如菜单栏、工具栏和状态栏)显示数据。 非平凡应用程序还可以显示其他窗口以执行以下任务

  1. 我们将使用窗口向用户显示特定信息。
  2. 借助非平凡应用程序的窗口,我们可以显示用户的信息。
  3. 我们将使用该应用程序来显示和收集用户的信息。

所有这些用于不同目的的窗口都称为对话框。 对话框有两种类型。

  1. 模态
  2. 无模式

现在我们将解释这两个对话框。

  1. 模态: 当需要附加数据时,将出现模态对话框。 模态对话框的需要是收集数据。 当对话框打开时,这将阻止我们激活应用程序中的其他窗口。 在大多数情况下,模态对话框允许我们在完成任务时发出信号。 我们将通过按下对话框的按钮(可以是确定取消按钮)来显示信号。 当我们按下“确定”按钮时,我们希望处理输入的数据,并希望继续处理该数据。 当我们单击“取消”按钮时,取消按钮将显示我们希望停止该功能一起执行。 模态对话框最常见的示例是打开、保存和打印数据。
  2. 无模式: 模态和无模式对话框之间的区别在于,当我们尝试打开另一个窗口时,无模式对话框不会阻止我们激活其他窗口。 现在我们举个例子,如果我们想在文档中查找单词的出现次数。 现在主窗口将打开对话框以找出我们要搜索的内容。 众所周知,搜索单词不会影响文档版本。 这就是为什么对话框不需要是模态的。 无模式对话框提供了一个“关闭”按钮来关闭对话框,并为我们提供了执行特定功能的其他按钮,例如“查找下一个”按钮,以查找下一个匹配的单词。

借助WPF,我们可以创建不同类型的对话框,其中包括消息框、对话框和自定义对话框。

现在我们将解释不同类型的对话框。

消息框: 消息框是一个对话框,我们可以使用它来显示文本信息,并允许用户借助按钮做出决定。

我们可以使用 MessageBox 类创建消息框。

下图向我们显示了消息框,该消息框显示文本信息,向我们提问,并提供三个按钮以借助按钮进行回答。

WPF Dialog Box

2. 常用对话框: Windows 实现了不同类型的可重用对话框。 这些常用对话框对于所有应用程序都是通用的。 当我们要打开文件时,这会向我们显示对话框,当我们尝试保存文件并希望打印时,将出现常用对话框。 现在,常用对话框将以托管类的形式公开对话框,并且我们也可以在独立应用程序中使用这些类。

要打开文件对话框,我们使用文件打开功能来检索我们要打开的文件的名称,如下面的屏幕截图所示

WPF Dialog Box

要打开常用文件对话框,我们使用了位于 Microsoft.Win32 命名空间中的 OpenFileDialog 类。

自定义对话框

自定义对话框非常有用,我们可以在需要时使用这些对话框。 自定义对话框不支持特定于域的对话框。 在这种情况下,我们将创建自己的对话框。

现在我们将创建自定义对话框。

为了理解对话框的概念,首先我们将创建一个新的 WPF 项目,其名称为 WPFDialogBox。

现在我们将使用一个文本框和一个按钮。 当我们单击该按钮时,这将打开另一个对话框,其中包含“是”、“否”和“取消”按钮。 当我们单击任何一个按钮时,这将向我们显示一条新消息。

当我们单击任何按钮时,该按钮会向我们显示一条消息并关闭自身。 当我们单击按钮时,该按钮会向我们显示信息。

要在页面上添加文本框和按钮,我们将编写以下 XAML 代码

MainWindow.XAML

现在,我们将在单击按钮后编写生成的事件的C#代码。

MainWindow.XAML.CS

以上代码的输出将如下图所示

输出

WPF Dialog Box

在上面的屏幕截图中,当我们单击“是”按钮时,这会在上面的文本框中显示内容。