Silverlight/WPFで使える逆引きTips集――インクキャンバス機能 のサイトを参考に、Powershellで自作したペイントアプリのサンプル
参考サイトで実現している『文字認識』以外はすべて実装
ちょっと文字認識は面白そうだが面倒くさそう、次回チャレンジしよう。
サンプルコード解説等
各種ボタン操作により、
InkCanvasに絵を描いたり、描いた画像を保存したり、画像をコピーペースしたりできる。
実装してみて面白かったのは、画像解析(ジェスチャを認識)
それから勉強になったのは、Powerahellのイベント処理(例えば、InkCanvas.Gesture)
Powershellでは、$this と $_が、呼び元の引数が引っ張り込めること。
具体的なイベントソース、イベントデータの取得方法の実装
VisualBasicやC#では「sender」と「e」によって、イベントソース、イベントデータの取得できるが、その「sender」と「e」に相当するのが、Powershellでは「$this」と「$_」になる。
イベントソース | イベントデータ | |
---|---|---|
VisualBasic/C# | sender | e |
Powershell | $this | $_ |
今回は、参考サイトのコーディングを流用させて頂いた。(すごい、まったくしらなかったです!)
1 2 3 4 5 6 7 |
#マウスダウン時の処理 $InkCanvas1.Add_PreviewMouseDown.Invoke({ ($sender, $e) = $this, $_ #// マウスの右ボタンが押されたか? if ($e.RightButton -eq [System.Windows.Input.MouseButtonState]::Pressed) { |
実行結果
参考URL
VisualBaiscとPowerShellのイベント処理の比較 – PowerShell Memo (hatenadiary.org)
Silverlight/WPFで使える逆引きTips集 ――インクキャンバス機能 (1/9):CodeZine(コードジン)
コメント