こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

WPFで常にカーソルを非表示にするには?

C#でWPFプログラムでカーソルを常に非表示にする必要がでてきました。
WindowsFormアプリでは、 Cursor.Hide(); とすると IsEnabled=false; としても、カーソルは表示されません。
WPFアプリでは、Hide()は使えないので、this.Cursor = Cursor.NONE; とする事になるかと思いますが、 これでは IsEnabled = false; となった時カーソルが表示されてしまうようです。
何か案はありますでしょうか? ご教示よろしくお願いいたします。

投稿日時 - 2019-04-07 00:45:24

QNo.9604344

暇なときに回答ください

質問者が選んだベストアンサー

https://stackoverflow.com/questions/38783195/change-mouse-cursor-to-stop-pointer-on-hover-on-disabled-button-in-wpf
ここを読むとわかりますが、スタイル定義として、IsEnabled=Falseの時のCursor設定をNoにする事で回避できると思われます。

投稿日時 - 2019-04-07 06:59:21

お礼

ありがとうございました。
対応方法として、Window上の一番外側GridをDisableにする事で、対応する事としました。
画面側:
<Window x:Class="MainWindow">
  <Grid x:name="dummyFrame">
    ~
  </Grid>
</Window>

ソース側
public partial class MainWindow : Window
{
  public MainWindow()
  {
    InitializeComponent();
    this.Cursor = Cursors.None;
  }

  private void Button_Click(object sender, RoutedEventArgs e)
  {
    dummyFrame.IsEnabled = false;
    Task.Run(() =>
    {
      Thread.Sleep(5000);
      Dispatcher.Invoke(() =>
      {
        dummyFrame.IsEnabled = true;
      });
    });
  }
}

これで画面がDisable状態に見えた時でも、カーソルが表示されないようです。

投稿日時 - 2019-04-20 01:21:47

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問