いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

WPFでWinFormsのPerformClickみたいな動作を実施

WPF 4.5 UNLEASHEDに載っていたので、忘れないうちにメモメモ。

WPF 4.5 Unleashed

WPF 4.5 Unleashed

WinFormsにあるPerformClickみたいな処理をする方法です。

WPFで使うかどうかは微妙ですが。。。

以下のようにすると、コード側からボタンクリックを実施できます。

      //
      // WinFormsでいうPerformClickを実行.
      //   System.Windows.Automation.Peers
      //   System.Windows.Automation.Provider
      // 名前空間が必要。
      //
      // IInvokeProviderインターフェースは、UIAutomationProvider.dll
      // の参照設定が追加で必要となる。
      //
      var peer     = new ButtonAutomationPeer(theButtonObject);
      var provider = peer.GetPattern(PatternInterface.Invoke) as IInvokeProvider;
 
      provider.Invoke();

コメントにも記述しているように

System.Windows.Automation.Peers
System.Windows.Automation.Provider

名前空間のクラスが必要となり、UIAutomationProvider.dll の参照が別途必要になります。

以下、サンプルです。

WPFでWinFormsのButtonのPerformClickと同じようなことを実施