SIGN UP MEMBER LOGIN:    
ARTICLE

Cursor in WPF and C#

Posted by Brijesh Jalan Articles | WPF with C# July 30, 2010
In this we will learn how to create Cursor in WPF with C#.
Reader Level:
 


Cursor Application in WPF

This example shows how to change the Cursor of the mouse pointer for a specific element and for the application.This example consists of a Extensible Application Markup Language (XAML) file and a code behind file.

<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">
                <Label HorizontalAlignment="Left">Cursor Type</Label>
                <ComboBox Width="100" SelectionChanged="CursorTypeChanged" HorizontalAlignment="Left" Name="CursorSelector">
                    <ComboBoxItem Content="AppStarting" />
                    <ComboBoxItem Content="ArrowCD" />
                    <ComboBoxItem Content="Arrow" />
                    <ComboBoxItem Content="Cross" />
                    <ComboBoxItem Content="HandCursor" />
                    <ComboBoxItem Content="Help" />
                    <ComboBoxItem Content="IBeam" />
                    <ComboBoxItem Content="No" />
                    <ComboBoxItem Content="None" />
                    <ComboBoxItem Content="Pen" />
                    <ComboBoxItem Content="ScrollSE" />
                    <ComboBoxItem Content="ScrollWE" />
                    <ComboBoxItem Content="SizeAll" />
                    <ComboBoxItem Content="SizeNESW" />
                    <ComboBoxItem Content="SizeNS" />
                    <ComboBoxItem Content="SizeNWSE" />
                    <ComboBoxItem Content="SizeWE" />
                    <ComboBoxItem Content="UpArrow" />
                    <ComboBoxItem Content="WaitCursor" />
                    <ComboBoxItem Content="Custom" />
                </ComboBox>
            </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>

// code behind the 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;
                    case "Arrow":
                        DisplayArea.Cursor = Cursors.Arrow;
                        break;
                    case "Cross":
                        DisplayArea.Cursor = Cursors.Cross;
                        break;
                    case "HandCursor":
                        DisplayArea.Cursor = Cursors.Hand;
                        break;
                    case "Help":
                        DisplayArea.Cursor = Cursors.Help;
                        break;
                    case "IBeam":
                        DisplayArea.Cursor = Cursors.IBeam;
                        break;
                    case "No":
                        DisplayArea.Cursor = Cursors.No;
                        break;
                    case "None":
                        DisplayArea.Cursor = Cursors.None;
                        break;
                    case "Pen":
                        DisplayArea.Cursor = Cursors.Pen;
                        break;
                    case "ScrollSE":
                        DisplayArea.Cursor = Cursors.ScrollSE;
                        break;
                    case "ScrollWE":
                        DisplayArea.Cursor = Cursors.ScrollWE;
                        break;
                    case "SizeAll":
                        DisplayArea.Cursor = Cursors.SizeAll;
                        break;
                    case "SizeNESW":
                        DisplayArea.Cursor = Cursors.SizeNESW;
                        break;
                    case "SizeNS":
                        DisplayArea.Cursor = Cursors.SizeNS;
                        break;
                    case "SizeNWSE":
                        DisplayArea.Cursor = Cursors.SizeNWSE;
                        break;
                    case "SizeWE":
                        DisplayArea.Cursor = Cursors.SizeWE;
                        break;
                    case "UpArrow":
                        DisplayArea.Cursor = Cursors.UpArrow;
                        break;
                    case "WaitCursor":
                        DisplayArea.Cursor = Cursors.Wait;
                        break;
                    case "Custom":
                        DisplayArea.Cursor = CustomCursor;
                        break;
                    default:
                        break;
                }
            }
        }
        public void OnLoaded(object sender, RoutedEventArgs e)
        {
            ((ComboBoxItem)CursorSelector.Items[0]).IsSelected = true;
        }
    }
}
 

This is simplest way that how to use cursor in Window Presentation Form.

Output of the application:

WPFCURSOR.jpg

Login to add your contents and source code to this article
share this article :
post comment
 

Hi there, CustomCursor.cur file is not included. Could send me one.

Posted by Joon Kim Apr 03, 2012
6 Months Free & No Setup Fees ASP.NET Hosting!
Become a Sponsor
PREMIUM SPONSORS
  • ceTE software specializes in components for dynamic PDF generation and manipulation. The DynamicPDF™ product line allows you to dynamically generate PDF documents, merge PDF documents and new content to existing PDF documents from within your applications. Visit DynamicPDF here
    The leading .NET charting control now features PDF, Flash and Silverlight export, visualization of large datasets and more. Deliver true charting functionality to your BI, Scorecard, Presentation or Scientific apps. Download evaluation now.
Team Foundation Server Hosting
Become a Sponsor