Mega Code Archive

 
Categories / C# / WPF
 

Set cursor area

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