WPF点击按钮弹出一个窗口

一、基本方法:直接实例化并显示窗口

1. 普通窗口(无参数)
  • 适用场景:简单的弹出窗口,无需传递数据。

private void Button_Click(object sender, RoutedEventArgs e)
{
    var newWindow = new MyWindow(); // 实例化新窗口
    newWindow.Show(); // 非模态显示(用户可继续操作原窗口)
    // 或 newWindow.ShowDialog(); // 模态显示(阻塞原窗口,直到新窗口关闭)
}

  • 非模态窗口(Show():用户可同时操作原窗口和新窗口。
  • 模态窗口(ShowDialog():强制用户先关闭新窗口,才能操作原窗口。

二、传递数据到新窗口

1. 通过构造函数传递
  • 适用场景:新窗口需要初始化数据(如用户ID、标题等)。

// 新窗口的构造函数
public MyWindow(string title)
{
    InitializeComponent();
    this.Title = title; // 设置窗口标题
}
 
// 按钮点击事件
private void Button_Click(object sender, RoutedEventArgs e)
{
    var newWindow = new MyWindow("Custom Title");
    newWindow.Show();
}

 通过公共属性传递
  • 适用场景:需要在新窗口打开后动态更新数据。

// 新窗口的公共属性
public string Data { get; set; }
 
// 按钮点击事件
private void Button_Click(object sender, RoutedEventArgs e)
{
    var newWindow = new MyWindow();
    newWindow.Data = "Hello from Main Window"; // 设置数据
    newWindow.Show();
}

三、返回数据到原窗口

1. 模态窗口 + 返回值
  • 适用场景:新窗口需要返回用户输入(如对话框的确认/取消)。

// 新窗口(模态)
public partial class InputWindow : Window
{
    public string UserInput { get; private

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值