WPF中退出时显示是否保存数据提示

一、通过窗体中的按钮实现退出时数据保存提示

Xaml:

    <Grid>
        <TextBlock HorizontalAlignment="Left" Margin="152,159,0,0" TextWrapping="Wrap" Text="示例数据:" VerticalAlignment="Top" Height="20" Width="104" FontSize="18"/>
        <TextBox x:Name="TextBox_ExpData" HorizontalAlignment="Left" Height="23" Margin="282,156,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="120"/>
        <Button Content="退出" HorizontalAlignment="Left" Margin="448,159,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/>
    </Grid>

后台:

private void Button_Click(object sender, RoutedEventArgs e)
{
    if (!this.TextBox_ExpData.Text.Equals("0"))
    {
       MessageBoxResult result = MessageBox.Show("数据有变更,是否保存数据变更?", "WPF实例", MessageBoxButton.YesNoCancel, MessageBoxImage.Question);
       if (result == MessageBoxResult.Yes)
       {
             MessageBox.Show("数据被保存!");
             Application.Current.MainWindow.Close();
       }
       else if (result == MessageBoxResult.No)
       {
             Application.Current.MainWindow.Close();
       }
       else
       {
             return;
       }
    }
}

效果图:

二、通过点击右上角叉来实现数据保存提示

Xaml:

只需要在Window里面加一个Close事件,Closing="Window_Closing"

后台:

        private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            if (!this.TextBox_ExpData.Text.Equals("0"))
            {
                MessageBoxResult result = MessageBox.Show("数据有变更,是否保存数据变更?", "WPF实害例�", MessageBoxButton.YesNoCancel, MessageBoxImage.Question);
                if (result == MessageBoxResult.Yes)
                {
                    MessageBox.Show("数据被保存。");
                    e.Cancel = false;
                }
                else if (result == MessageBoxResult.No)
                {
                    e.Cancel = false;
                }
                else
                {
                    e.Cancel = true;
                }
            }
            else
            {
                e.Cancel = false;
            }
        }
    }

效果图:

原文地址:https://www.cnblogs.com/Leozi/p/10811670.html