<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.vb
Imports System
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Media
Imports System.Windows.Input
Imports System.IO
Imports System.Collections
Namespace WpfApplication1
Public Partial Class Window1
Inherits Window
Private CustomCursor As Cursor
Public Sub New()
CustomCursor = New Cursor(Directory.GetCurrentDirectory() & Path.DirectorySeparatorChar & "CustomCursor.cur")
End Sub
Public Sub CursorTypeChanged(sender As Object, e As SelectionChangedEventArgs)
Dim source As ComboBox = TryCast(e.Source, ComboBox)
If source IsNot Nothing Then
Dim selectedCursor As ComboBoxItem = TryCast(source.SelectedItem, ComboBoxItem)
Select Case selectedCursor.Content.ToString()
Case "AppStarting"
DisplayArea.Cursor = Cursors.AppStarting
Exit Select
Case "ArrowCD"
DisplayArea.Cursor = Cursors.ArrowCD
Exit Select
Case Else
Exit Select
End Select
If cursorScopeElementOnly = False Then
Mouse.OverrideCursor = DisplayArea.Cursor
End If
End If
End Sub
Public Sub CursorScopeSelected(sender As Object, e As RoutedEventArgs)
Dim source As RadioButton = TryCast(e.Source, RadioButton)
If source IsNot Nothing Then
If source.Name = "rbScopeElement" Then
cursorScopeElementOnly = True
Mouse.OverrideCursor = Nothing
End If
If source.Name = "rbScopeApplication" Then
cursorScopeElementOnly = False
Mouse.OverrideCursor = DisplayArea.Cursor
End If
End If
End Sub
Public Sub OnLoaded(sender As Object, e As RoutedEventArgs)
DirectCast(CursorSelector.Items(0), ComboBoxItem).IsSelected = True
End Sub
Private cursorScopeElementOnly As Boolean = True
End Class
End Namespace