• ベストアンサー

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

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

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

  • ベストアンサー
  • unokwave
  • ベストアンサー率58% (966/1654)
回答No.1

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

PED02744
質問者

お礼

ありがとうございました。 対応方法として、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状態に見えた時でも、カーソルが表示されないようです。

関連するQ&A

専門家に質問してみよう