WPFアプリでマウスカーソルを非表示にする方法

WPFアプリでマウスカーソルを非表示にしたいケースがあったのでメモしておきます。

C#ファイルに書く場合

this.Cursor = Cursors.None;を記述することでマウスカーソルが非表示になります。

namespace TestApp
{
    /// <summary>
    /// MainWindow.xaml の相互作用ロジック
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            this.Cursor = Cursors.None;
        }
    }
}

xamlファイルに書く場合

Window.Style内の記述でマウスカーソルが非表示になります。

<Window x:Class="TestApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:TestApp"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">

    <Window.Style>
        <Style TargetType="Window">
            <Setter Property="Cursor" Value="None"/>
        </Style>
    </Window.Style>

    <Grid>
        <Button Content="Button" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75"/>
    </Grid>
</Window>

注意

今回の方法だと、タイトルバーにマウスカーソルを置いたときに表示されてしまいます。

私はタイトルバーを非表示するアプリだったため問題ありませんでしたが、タイトルバーが表示されるアプリの場合はご注意ください。
マウスカーソルを非表示にしたいアプリはタイトルバーがないものだと勝手に思ってます(笑)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA