WPF中的对话框(Dialog)

本文详细介绍了WPF中三种系统定义的对话框:OpenFileDialog、SaveFileDialog和PrintDialog的功能及用法,包括它们的继承关系、常用事件、方法与属性。

 在WPF中,系统定义的对话框(Dialog)有三种:

  (1)Microsoft.Win32.OpenFileDialog

  (2)Microsoft.Win32.SaveFileDialog

  (3)System.Windows.Controls.PrintDialog

  先看看前面两种的层次继承关系:

  System.Object

  Microsoft.Win32.CommonDialog

  Microsoft.Win32.FileDialog

  Microsoft.Win32.OpenFileDialog

  Microsoft.Win32.SaveFileDialog

  我们看到,这两种对话框均位于Microsoft.Win32命名空间中,它们均继承自Microsoft.Win32.FileDialog。

  (1)OpenFileDialog:

  OpenFileDialog有一种公共事件:FileOk(当用户选择文件名,点击打开按钮时发生)

  OpenFileDialog有以下几种公共方法:

  OpenFile():打开单个文件

  OpenFiles():打开多个文件

  Reset():重置

  ShowDialog():显示对话框

  OpenFileDialog的公共属性有:

  .AddExtension,

  .CheckFileExists,

  .CheckPathExists,

  .DefaultExt,

  .DereferenceLinks,

  .FileName,

  .FileNames,

  .Filter,

  .FilterIndex,

  .InitialDirectory,

  .Multiselect,

  .ReadOnlyChecked,

  .RestoreDirectory,

  .SafeFileName,

  .SafeFileNames,

  .ShowReadOnly,

  .Tag,

  .Title,

  .ValidateNames

  其中,我们最常用的有: FileName, FileNames, Filter, FilterIndex, DefaultExt,InitialDirectory等。

  (2) SaveFileDialog:

  与OpenFileDialog类似,SaveFileDialog公共方法:

  OpenFile()

  Reset()

  ShowDialog()

  公共属性:

  .AddExtension,

  .CheckFileExists,

  .CheckPathExists,

  .CreatePrompt,

  .DefaultExt,

  .DereferenceLinks,

  .FileName,

  .FileNames,

  .Filter,

  .FilterIndex,

  .InitialDirectory,

  .OverwritePrompt,

  .RestoreDirectory,

  .SafeFileName,

  .SafeFileNames,

  .Tag,

  .Title,

  .ValidateNames

  说明:在WPF中的Microsoft.Win32.OpenFileDialog,Microsoft.Win32.SaveFileDialog与在WinForm中的System.Windows.Forms.OpenFileDialog, System.Windows.Forms.SaveFileDialog用法上基本上一样,但前者由于WPF的限制,无法在Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE下使用。

  再看看看PrintDialog:

  (3)PrintDialog:

  看看它的继承关系:

  System.Object

  System.Windows.Controls.PrintDialog

  需要注意的是:不要将System.Windows.Controls.PrintDialog与System.Windows.Forms.PrintDialog混淆了,后者用于WinForm应用程序中。System.Windows.Controls.PrintDialog则用于Windows Presentation Foundation (WPF)应用程序中。

本文来自wuzhengqing1的博客,原文地址:http://blog.youkuaiyun.com/wuzhengqing1/archive/2011/05/10/6410428.aspx

### WPF 中关闭对话框的方法 在 WPF 中,关闭对话框可以通过调用 `Window.Close()` 方法实现。此方法会关闭当前的窗口或对话框[^1]。此外,还可以通过绑定事件(如 `Window.Closed` 或 `Window.Closing`)来处理对话框关闭时的行为[^3]。 以下是一个示例代码,展示如何在用户点击按钮时关闭对话框: ```csharp // Dialog.xaml.cs namespace WpfApp2 { public partial class Dialog : Window { public Dialog() { InitializeComponent(); } // 定义一个按钮点击事件来关闭对话框 private void CloseDialog(object sender, RoutedEventArgs e) { this.Close(); // 关闭当前对话框 } } } ``` 在 XAML 文件中,可以将按钮的 `Click` 事件绑定到上述方法: ```xml <!-- Dialog.xaml --> <Window x:Class="WpfApp2.Dialog" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Dialog" Height="200" Width="300"> <Grid> <Button Content="Close" HorizontalAlignment="Center" VerticalAlignment="Center" Width="75" Click="CloseDialog"/> </Grid> </Window> ``` 如果需要在关闭对话框时执行某些操作,可以使用 `Window.Closed` 或 `Window.Closing` 事件。例如: ```csharp var dialog = new Dialog(); dialog.Closing += (sender, e) => { MessageBox.Show("The dialog is about to close!"); }; dialog.ShowDialog(); ``` 此外,在某些情况下,可能需要返回对话框的结果给父窗口。这可以通过设置 `DialogResult` 属性实现[^1]。例如: ```csharp private void Ok_Click(object sender, RoutedEventArgs e) { this.DialogResult = true; // 设置对话框结果为 true this.Close(); // 关闭对话框 } ``` ### 注意事项 - 使用 `ShowDialog()` 方法显示对话框时,只有在对话框关闭后才会继续执行后续代码。 - 如果需要传递数据回主窗口,可以通过公共属性或事件完成。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值