<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("MyResources.xaml"); ResourceDictionary rd = (ResourceDictionary)Application.LoadComponent(resourcePath); } } }
Month: February 2011
Application.GetResourceStream
<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.GetResourceStream(resourcePath); Stream data = ri.Stream; // data; } } }
Application Exit event
<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"); } } }
Handle Application DispatcherUnhandledException
<Application x:Class="TreeViewDataBinding.app" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Startup="AppStartup" > <Application.Resources> </Application.Resources> </Application> //File:Window.xaml.cs using System; using System.Windows; using System.Data; using System.Xml; using System.Configuration; namespace TreeViewDataBinding { public partial class app : Application { void AppStartup(object sender, StartupEventArgs args) { this.DispatcherUnhandledException += new System.Windows.Threading.DispatcherUnhandledExceptionEventHandler(app_DispatcherUnhandledException); } void app_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e) { MessageBox.Show(e.Exception.Message); } } }
Application Startup event
<Application x:Class="Microsoft.Samples.WinFX.AlarmClock.MyApp" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Startup="AppStartup" > </Application> //File:Window.xaml.cs using System; using System.Windows; using System.Data; using System.Xml; using System.Configuration; using System.Windows.Media; namespace Microsoft.Samples.WinFX.AlarmClock { public partial class MyApp : Application { void AppStartup(object sender, StartupEventArgs e) { } } }
Store the variable in the application and get it back
<Window x:Class="BookApp.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="BookApp" Height="300" Width="300"> <Grid> <Button Click="MyClickEvent" VerticalAlignment="Top" HorizontalAlignment="Stretch" Grid.Column="0" Grid.ColumnSpan="1" Grid.Row="0" Grid.RowSpan="1" Name="btnGo">Go</Button> </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; namespace BookApp { public partial class Window1 : System.Windows.Window { public Window1() { InitializeComponent(); Book x = new Book(); x.author = "Author"; x.title = "Title"; x.price = (decimal)9.99; Application.Current.Properties["Book"] = x; } private void MyClickEvent(object sender, RoutedEventArgs e) { Book y = (Book)Application.Current.Properties["Book"]; MessageBox.Show(y.title, y.author, MessageBoxButton.OK,MessageBoxImage.Hand); } } public class Book { public decimal price; public string title; public string author; } }
Application.Current.Windows stores all windows you created
<Window x:Class="WpfApplication1.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="AppWindowsSample" Height="200" Width="300" xmlns:my="clr-namespace:System;assembly=mscorlib"> <StackPanel> <Menu Name="menu1" > <MenuItem Header="Window" x:Name="windowMenu"> <MenuItem Header="SubmenuOpened event" /> </MenuItem> </Menu> <Button Margin="10" Name="newWindowButton" Height="23" VerticalAlignment="Top">New Window</Button> <StatusBar Grid.Row="2" Name="statusBar1" > <TextBlock x:Name="statusText">Status</TextBlock> </StatusBar> <Button Height="23" Margin="10" Name="shutdownButton" VerticalAlignment="Top" >Shutdown</Button> </StackPanel> </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.Windows.Controls.Primitives; using System.Diagnostics; using System.ComponentModel; namespace WpfApplication1 { public partial class Window1 : System.Windows.Window { public Window1() { InitializeComponent(); DataContext = Application.Current.Windows; statusText.Text = Application.Current.ShutdownMode.ToString(); newWindowButton.Click += new RoutedEventHandler(newWindowButton_Click); shutdownButton.Click += new RoutedEventHandler(shutdownButton_Click); windowMenu.SubmenuOpened += new RoutedEventHandler(windowMenu_SubmenuOpened); Closing += Window1_Closing; } public void windowMenu_SubmenuOpened(object sender, RoutedEventArgs e) { windowMenu.Items.Clear(); foreach( Window window in Application.Current.Windows ) { MenuItem item = new MenuItem(); item.Header = window.Title; item.Click += windowMenuItem_Click; item.Tag = window; item.IsChecked = window.IsActive; windowMenu.Items.Add(item); } } public void windowMenuItem_Click(object sender, RoutedEventArgs e) { Window window = (Window)((MenuItem)sender).Tag; window.Activate(); } public void newWindowButton_Click(object sender, RoutedEventArgs e) { Window window = new Window(); window.Title = "Window " + DateTime.Now; window.Width = 200; window.Height = 100; window.Show(); statusText.Text = Application.Current.ShutdownMode.ToString(); } void shutdownButton_Click(object sender, RoutedEventArgs e) { Application.Current.Shutdown(); } void Window1_Closing(object sender, CancelEventArgs e) { if( MessageBox.Show("Do you really want to shut down?", "Shutting Down", MessageBoxButton.YesNo) == MessageBoxResult.No ) { e.Cancel = true; } } } }