<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;
}
}
}
}

