<Window x:Class="WpfApplication1.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="cursors" Height="450" Width="600" Loaded="OnLoaded"> <Window.Resources> <Style TargetType="{x:Type RadioButton}"> <Setter Property="Margin" Value="3" /> </Style> <Style TargetType="{x:Type Label}"> <Setter Property="FontSize" Value="14" /> <Setter Property="HorizontalAlignment" Value="Center" /> </Style> <Style TargetType="{x:Type Border}"> <Setter Property="BorderBrush" Value="LightBlue" /> <Setter Property="BorderThickness" Value="2" /> <Setter Property="Margin" Value="10" /> </Style> </Window.Resources> <StackPanel> <Border Width="300"> <StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> <StackPanel Margin="10"> <Label HorizontalAlignment="Left">Cursor Type</Label> <ComboBox Width="100" SelectionChanged="CursorTypeChanged" HorizontalAlignment="Left" Name="CursorSelector"> <ComboBoxItem Content="AppStarting" /> <ComboBoxItem Content="ArrowCD" /> </ComboBox> </StackPanel> <StackPanel Margin="10"> <Label HorizontalAlignment="Left">Scope of Cursor</Label> <StackPanel> <RadioButton Name="rbScopeElement" IsChecked="True" Checked="CursorScopeSelected">Display Area Only</RadioButton> <RadioButton Name="rbScopeApplication" Checked="CursorScopeSelected">Entire Appliation</RadioButton> </StackPanel> </StackPanel> </StackPanel> </Border> <Border Name="DisplayArea" Height="250" Width="400" Margin="20" Background="AliceBlue"> <Label HorizontalAlignment="Center"> Move Mouse Pointer Over This Area </Label> </Border> </StackPanel> </Window> //File:Window.xaml.cs using System; using System.Windows; using System.Windows.Controls; using System.Windows.Media; using System.Windows.Input; using System.IO; using System.Collections; namespace WpfApplication1 { public partial class Window1 : Window { Cursor CustomCursor; public Window1() { CustomCursor = new Cursor(Directory.GetCurrentDirectory() +Path.DirectorySeparatorChar + "CustomCursor.cur"); } public void CursorTypeChanged(object sender, SelectionChangedEventArgs e) { ComboBox source = e.Source as ComboBox; if (source != null) { ComboBoxItem selectedCursor = source.SelectedItem as ComboBoxItem; switch (selectedCursor.Content.ToString()) { case "AppStarting": DisplayArea.Cursor = Cursors.AppStarting; break; case "ArrowCD": DisplayArea.Cursor = Cursors.ArrowCD; break; default: break; } if (cursorScopeElementOnly == false) { Mouse.OverrideCursor = DisplayArea.Cursor; } } } public void CursorScopeSelected(object sender, RoutedEventArgs e) { RadioButton source = e.Source as RadioButton; if (source != null) { if (source.Name == "rbScopeElement") { cursorScopeElementOnly = true; Mouse.OverrideCursor = null; } if (source.Name == "rbScopeApplication") { cursorScopeElementOnly = false; Mouse.OverrideCursor = DisplayArea.Cursor; } } } public void OnLoaded(object sender, RoutedEventArgs e) { ((ComboBoxItem)CursorSelector.Items[0]).IsSelected = true; } private bool cursorScopeElementOnly = true; } }