<Application x:Class="NavigationApplication.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" StartupUri="StartupWindow.xaml" NavigationFailed="App_NavigationFailed"> </Application> //File:Window.xaml.cs using System; using System.Windows; using System.Data; using System.Xml; using System.Configuration; using System.Windows.Threading; using System.Windows.Navigation; namespace NavigationApplication { public partial class App : System.Windows.Application { private void App_NavigationFailed(object sender, NavigationFailedEventArgs e) { if (e.Exception is System.Net.WebException) { MessageBox.Show("Website " + e.Uri.ToString() + " cannot be reached."); e.Handled = true; } } } }
Month: February 2011
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? " + 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"); } } }
Single Instance Sample
<Application x:Class="SingleInstanceSample.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.Threading; using System.Reflection; namespace SingleInstanceSample { public partial class App : System.Windows.Application { Mutex mutex; protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); string mutexName = "MyCompanyName.MyAppName"; bool createdNew; mutex = new Mutex(true, mutexName, out createdNew); if( !createdNew ) { Shutdown(); } } } }
StartupUri attribute
<Application x:Class="SimpleXamlApp.MyApp" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" StartupUri="MainWindow.xaml" Exit="AppExit" > </Application> //File:Window.xaml.cs using System; using System.Windows; using System.Windows.Controls; namespace SimpleXamlApp { public partial class MyApp : Application { void AppExit(object sender, ExitEventArgs e) { MessageBox.Show("App has exited"); } } }
Using GetContentStream
<Window x:Class="BinaryResources.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="BinaryResources" Height="300" Width="300"> <Grid> <Image Source="c:image.jpg" /> </Grid> </Window> //File:Window.xaml.cs using System; using System.Collections.Generic; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using System.IO; using System.Reflection; using System.Diagnostics; using System.Threading; using System.Resources; using System.Collections; using System.Windows.Resources; namespace BinaryResources { public partial class Window1 : System.Windows.Window { public Window1() { InitializeComponent(); Uri resourcePath = new Uri("file:///c:/image.jpg", UriKind.Relative); StreamResourceInfo ri = Application.GetContentStream(resourcePath); Stream data = ri.Stream; // data; } } }
Create and retrieve cookies from a Windows Presentation Foundation (WPF) application using SetCookie and GetCookie.
<Page x:Class="CookiesSampleCSharp.HomePage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" WindowTitle="Cookies Sample"> <StackPanel> <Label>Set Cookie Value:</Label> <TextBox Name="setCookieValueTextBox">Cookie1=Value1</TextBox> <Button HorizontalAlignment="Right" Name="setCookieButton" Click="setCookieButton_Click">Set Cookie</Button> <Label>Get Cookie Value:</Label> <TextBox Name="getCookieValueTextBox"></TextBox> <Button HorizontalAlignment="Right" Name="getCookieButton" Click="getCookieButton_Click">Get Cookie</Button> </StackPanel> </Page> //File:Window.xaml.cs using System; using System.ComponentModel; using System.Windows; using System.Windows.Controls; using System.Windows.Interop; using System.Windows.Navigation; namespace CookiesSampleCSharp { public partial class HomePage : System.Windows.Controls.Page { public HomePage() { InitializeComponent(); } void setCookieButton_Click(object sender, RoutedEventArgs e) { try { Application.SetCookie(BrowserInteropHelper.Source, this.setCookieValueTextBox.Text); } catch (Win32Exception ex) { MessageBox.Show(ex.Message + " (Native Error Code=" + ex.NativeErrorCode + ")"); } } void getCookieButton_Click(object sender, RoutedEventArgs e) { try { this.getCookieValueTextBox.Text = Application.GetCookie(BrowserInteropHelper.Source); } catch (Win32Exception ex) { MessageBox.Show(ex.Message + " (Native Error Code=" + ex.NativeErrorCode + ")"); } } } }
Get a handle to the current app and shut it down
<Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="My Xaml App" Height="200" Width="300" WindowStartupLocation ="CenterScreen"> <Button Width="133" Height="24" Name="btnExitApp" Click ="btnExitApp_Clicked"> Exit Application </Button> </Window> //File:Window.xaml.cs using System; using System.Windows; using System.Windows.Controls; namespace WpfApplication1 { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void btnExitApp_Clicked(object sender, RoutedEventArgs e) { Application.Current.Shutdown(); } } }