Application Events Sample : Application « Windows Presentation Foundation « C# / C Sharp






Application Events Sample

  

<Application x:Class="AppEventsSample.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    StartupUri="Window1.xaml">
    <Application.Resources>
         
    </Application.Resources>
</Application>
//File:Window.xaml.cs

using System;
using System.Windows;
using System.Data;
using System.Xml;
using System.Configuration;
using System.Diagnostics;
using System.Collections.ObjectModel;
using System.Text;
using System.IO;
using System.Collections.Specialized;
using System.Windows.Threading;

namespace AppEventsSample {
  public partial class App : Application {
    public readonly ObservableCollection<string> EventLog = new ObservableCollection<string>();

    public App() {
      this.Activated += new EventHandler(App_Activated);
      this.Deactivated += new EventHandler(App_Deactivated);
      this.DispatcherUnhandledException += new System.Windows.Threading.DispatcherUnhandledExceptionEventHandler(App_DispatcherUnhandledException);
      this.Exit += new ExitEventHandler(App_Exit);
      this.SessionEnding += new SessionEndingCancelEventHandler(App_SessionEnding);
      this.Startup += new StartupEventHandler(App_Startup);

      File.Delete(@"c:\a.txt");
      EventLog.CollectionChanged += EventLog_CollectionChanged;
      EventLog.Add("App()");
    }

    void EventLog_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) {
      using (StreamWriter writer = new StreamWriter(@"c:\a.txt", true)) {
        foreach (string item in e.NewItems) { writer.WriteLine(item); }
      }
    }

    void App_Startup(object sender, StartupEventArgs e) {
      StringBuilder args = new StringBuilder();
      for (int i = 0; i != e.Args.Length; ++i) {
        args.AppendFormat("arg[{0}]: '{1}' ", i, e.Args[i]);
      }

      EventLog.Add("App_Startup: args= " + args);
    }

    void App_SessionEnding(object sender, SessionEndingCancelEventArgs e) {
      EventLog.Add("App_SessionEnding: reason= " + e.ReasonSessionEnding.ToString());

      if (MessageBox.Show(e.ReasonSessionEnding.ToString(), "Session Ending", MessageBoxButton.OKCancel) == MessageBoxResult.Cancel) {
        e.Cancel = true;
      }
    }

    void App_Exit(object sender, ExitEventArgs e) {
      EventLog.Add("App_Exit: exit code=" + e.ApplicationExitCode.ToString());
    }

    void App_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e) {
      EventLog.Add("App_DispatcherUnhandledException: " + e.Exception.Message);

      if (MessageBox.Show("Is exception handled?\r\n" + e.Exception.Message, "Exception", MessageBoxButton.YesNo) == MessageBoxResult.Yes) {
        e.Handled = true;
      }
    }

    void App_Activated(object sender, EventArgs e) {
      EventLog.Add("App_Activated");
    }

    void App_Deactivated(object sender, EventArgs e) {
      EventLog.Add("App_Deactivated");
    }

  }
}

   
    
  








Related examples in the same category

1.Use Application.Current.Dispatcher.Invoke to throw an exceptionUse Application.Current.Dispatcher.Invoke to throw an exception
2.(ResourceDictionary)Application.LoadComponent
3.Application.GetResourceStream
4.Application Exit event
5.Handle Application DispatcherUnhandledException
6.Application Startup event
7.Store the variable in the application and get it backStore the variable in the application and get it back
8.Application.Current.Windows stores all windows you createdApplication.Current.Windows stores all windows you created
9.Application.Current.ShutdownModeApplication.Current.ShutdownMode
10.Implement Application.DoEvents in WPFImplement Application.DoEvents in WPF
11.Throw Application event from button click event handlerThrow Application event from button click event handler
12.Shut down the application in Window closing eventShut down the application in Window closing event
13.Menu with Application command: cut, copy, pasteMenu with Application command: cut, copy, paste
14.Use Application Command to edit RichTextBoxUse Application Command to edit RichTextBox
15.Exit current action with Application.Current.ShutdownExit current action with Application.Current.Shutdown
16.Set and get data from Application.Current.PropertiesSet and get data from Application.Current.Properties
17.Localizable Application by putting localized resource in XamlLocalizable Application by putting localized resource in Xaml
18.Application NavigationFailed event
19.Single Instance Sample
20.StartupUri attribute
21.Using GetContentStream
22.Create and retrieve cookies from a Windows Presentation Foundation (WPF) application using SetCookie and GetCookie.Create and retrieve cookies from a Windows Presentation Foundation (WPF) application using SetCookie and GetCookie.
23.Get a handle to the current app and shut it downGet a handle to the current app and shut it down