Powershell WPF InkCanvas を使ったペイントアプリの自作サンプル

PowerShell

Silverlight/WPFで使える逆引きTips集――インクキャンバス機能 のサイトを参考に、Powershellで自作したペイントアプリのサンプル

参考サイトで実現している『文字認識』以外はすべて実装

ちょっと文字認識は面白そうだが面倒くさそう、次回チャレンジしよう。

サンプルコード解説等

 各種ボタン操作により、

  InkCanvasに絵を描いたり、描いた画像を保存したり、画像をコピーペースしたりできる。

  実装してみて面白かったのは、画像解析(ジェスチャを認識)

  それから勉強になったのは、Powerahellのイベント処理(例えば、InkCanvas.Gesture)

  Powershellでは、$this と $_が、呼び元の引数が引っ張り込めること。

具体的なイベントソース、イベントデータの取得方法の実装

VisualBasicやC#では「sender」と「e」によって、イベントソース、イベントデータの取得できるが、その「sender」と「e」に相当するのが、Powershellでは「$this」と「$_」になる。

イベントソースイベントデータ
VisualBasic/C#sendere
Powershell$this$_

今回は、参考サイトのコーディングを流用させて頂いた。(すごい、まったくしらなかったです!)

#マウスダウン時の処理
$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(コードジン)

ライセンス:本記事のテキスト/コードは特記なき限り CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。

コメント

タイトルとURLをコピーしました