ページ

2012-06-11

PowerShellとWPFでシンプルGUIプログラミング

ずっとWindowsでお手軽にGUIを作る方法を探していたが、ついに見つけてしまったかもしれない。

欲しかったのは、こんな感じのことができるもの:
  • なるべく追加ソフトウェアをインストールせずに使えるもの
  • 複雑なレイアウトは別にできなくてもよい
  • UIはなるべくシンプルに書ける
  • プロジェクトなどを必要とせず、1ファイルのスクリプトで表現できる
どのようにするかというと、PowerShellスクリプト上にXAMLをインラインで記述し、WPFのUIを作ればよい。

以下、ボタンを押すとWebサービスを呼び出して、テキストボックスに東京の天気を表示する例である。


PowerShellの仕組み上、.NETでできることはできるだろうとわかっていたので、Windows Formsを使えばいけそうな気はしていたが、コードがごちゃごちゃしそうでやめていた。
しかしWPFという発想はなかった。

なお、「なるべく追加ソフトウェアをインストールせずに使えるもの」という条件を外せば、ShowUIというモジュールがあり、よりPowerShell的に記述できる(らしい)。しかし使う人みんな入れないといけないので、ちょっと微妙だと思っている。

また、蛇足であるが、PowerGUIというエディタが便利。一度走らせると、ダイナミックな言語にも関わらず、ちゃんとVisual Studio的な補完が可能である。

参考:
http://stackoverflow.com/questions/5829787/powershell-wpf-from-xml-findname-problem
http://thepowershellguy.com/blogs/posh/archive/2009/05/15/powershell-v2-get-weather-function-using-a-web-service.aspx
http://www.dougfinke.com/blog/index.php/2011/07/24/extending-powershell-to-the-gui-with-showui/

0 件のコメント:

コメントを投稿