午後わてんのブログ

ベランダ菜園とWindows用アプリ作成(WPFとC#)

WPFとVBでPixtack紫陽花の後継作成開始

前回

gogowaten.hatenablog.com

の続き

 

 

アプリ作成の途中経過

だいたいできたかなあ
 
複数画像を1枚にするアプリのPixtack紫陽花の後継にしようと思っている
 
 
イメージ 1
起動したところ
 
イメージ 2
エクスプローラなどから画像ファイルを
 
イメージ 3
こうなる
 
イメージ 4
マウスで画像を適当に動かして
 
保存ボタンで名前を付けて保存ダイアログ表示

f:id:gogowaten:20191025111918p:plain

ファイル名を付けて保存をすることができる
ファイルの種類で画像形式を選択できる
 
イメージ 6
保存された画像
 
テストの時から付け加えた機能は
クリップボードから画像を貼り付けと
画像を追加するときの設定をいろいろ
 
イメージ 7
複数ファイルを追加するときの動き
追加される場所は選択画像が基準にしている
けど、これは一番上か下の画像も選べるようにした方がいいって今思った
 
 
スライドさせる値はマイナスにもできるけど不具合あり
ってのも今気づいた
イメージ 8
スクロールバーが表示されない
画像をクリックすれば表示されるけど位置がずれる
 
メニューバーの表示1
イメージ 9
左上のメニューから表示1で、左側の表示非表示が切り替わる
 
メニューバーの表示2
イメージ 10
同じく表示2で左側の見本画像やボタン類の表示非表示が切り替わる
 
イメージ 11
赤枠のところは今のところ意味なし
 
WPFツールバーにもメニューアイテムを追加できるから
メニューバーは要らないかな、メニューバーもツールバーもあんまり使ったことないからよくわからん
 
 
選択画像は目印として左上に縮小表示がキレイじゃない
Windowsフォームアプリでもいろいろモードが選べたから
WPFでも選べるはずと思ったけど方法がわからなくてググって
WPF Imageコントロールの拡大・縮小アルゴリズム変更方法 - Qiita
http://qiita.com/Nuits/items/c23919eb21db3445dadf
ここみたらImageクラスを継承したクラスを作成していて
見るとC#で書いていてOverride、OnRenderの文字がある
OverrideはVBでいうOverridesだろうってことで真似して
 
HighQualiyImageクラス
Public Class HighQualiyImage
    Inherits Image
    Protected Overrides Sub OnRender(dc As DrawingContext)
        Me.VisualBitmapScalingMode = BitmapScalingMode.HighQuality
        MyBase.OnRender(dc)
    End Sub
End Class
こう書いてみた
キレイモードはFantでこれはHighQualityと同等とヘルプにもあって
見比べたらやっぱり同じだったので
HighQualityのほうが名前的に綺麗になりそうなのでこっちにしたw
Overridesは最近少しわかってきたところだからギリギリだった


あとはXAMLのほうに
イメージ 12
Imageに代わって
local:HighQualiyImageを追加
 
イメージ 13
綺麗な縮小表示になった
Nuitsさん、ありがとうございました!
ダウンロード
 
前回の記事
WPFVBでアプリ作る準備その9、XAMLでコントロールのレイアウト ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
http://blogs.yahoo.co.jp/gogowaten/13929569.html