在WPF窗口中确定窗口关闭发件人

时间:2013-04-08 11:30:57

标签: c# wpf event-handling wpf-controls

当用户通过单击关闭按钮(红色X按钮)取消对话框时,我想执行特定操作

enter image description here

而不是因为某些其他操作而关闭表单。我怎么决定是否

private void Window_Closing(object sender, CancelEventArgs e)

事件是由按钮引发的?

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Height="60" Width="284" WindowStartupLocation="CenterScreen" 
    BorderBrush="#FFCCCCCC"
    BorderThickness="2"
    Background="#FFE0E0E0"
    WindowStyle="SingleBorderWindow" 
    ShowInTaskbar="False" ResizeMode="NoResize" Closing="Window_Closing">

2 个答案:

答案 0 :(得分:0)

    public MainWindow()
    {
        InitializeComponent();
        this.Closing+=new System.ComponentModel.CancelEventHandler(MainWindow_Closing);

    }
    private void MainWindow_Closing(object sender, EventArgs e)
    {
        MessageBox.Show("salman");

    }

答案 1 :(得分:0)

我的问题是关闭此窗口的其他方法是什么?我的理解是发送者总是成为窗口。

我会执行以下操作 - 对于所有按钮或基于用户的关闭 - 在Window上设置公共属性(类似于bool ClosedByUser)并将其设置为“true”然后调用Close()。

对于其他情况(例如通过单击“X”关闭),该属性默认设置为false。在结束事件处理程序中,使用该属性做出决定。

请注意:StackOverflow上还有其他问题和答案similar