午後わてんのブログ

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

PixMark栞無月その5、画像のブックマーク情報の保存

大量の画像ファイルから目的のものを選ぶアプリを作りなおしている途中その4、PixMark栞無月に名前変更 ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
http://blogs.yahoo.co.jp/gogowaten/13673525.html

gogowaten.hatenablog.com

の続き
 

f:id:gogowaten:20191024150937p:plain

右パネルの状態をファイルにして保存できるようにした
保存したファイルを読み込んで状態を復元できるようにした
左下パネルの画像をダブルクリックで別ウィンドウで表示できるようにした
別ウィンドウでは元の大きさで画像を表示
ボタンの変更
 
タブページの保存
イメージ 2
右から二つ目をクリックで
ファイルの保存ダイアログが開くので
 

f:id:gogowaten:20191024150951p:plain

名前を付けて保存
拡張子(.pmkにしてみた)は自動でつくはず
 
保存した栞(.pmk)ファイルの読み込み
イメージ 4
読み込みたい場所のPage2を選択して
右端のボタンをクリックでファイルを開くダイアログがでてくる
 

f:id:gogowaten:20191024151001p:plain

.pmkファイルを選択して開くで
 
イメージ 6
保存した時の状態が復元される
 
 
画像を別ウィンドウで元の大きさで表示

f:id:gogowaten:20191024151014p:plain

別ウィンドウで元の大きさで画像を表示
画像の大きさがデスクトップより大きい時はスクロールバーが表示される
別ウィンドウを閉じるときはダブルクリックか右上のxボタン
 
ボタンの見た目変更
イメージ 8
アイコンに変更した
 
 
タブページの状態保存
他のファイルと見分けがつくように拡張子は.pmkにしてみた
このファイルの中身はListViewItemに使うデータ、プロパティっていうのかな
具体的には縮小画像と表示する文字列を
<Serializable>
Public Structure ListItemData
    Property Name As String ’表示名
    Property FullPath As String ’画像ファイルのフルパス
    Property FolderPath As String
    Property IsZip As Boolean
    Property LargeIcon As Image ’縮小画像
End Structure
こんなふうに
シリアライズできる属性をつけたStructureを作っておいて
保存するときに表示しているタブのListViewのItemやImageListの画像をこのStructureに入れて、シリアライズしたものをバイナリ形式で保存している
もっと効率のいい方法がありそうなんだけど今回はこれでいいや
シリアライズを使ったデータの保存はPixtack紫陽花の文字の描画のフォント設定の時に使ったのを見ながら作った
 
すべての記事一覧 - 詳細表示 - 午後わてんのブログ - Yahoo!ブログ
http://blogs.yahoo.co.jp/gogowaten/MYBLOG/yblog.html?fid=0&m=lc&sk=0&sv=%A5%B7%A5%EA%A5%A2%A5%E9%A5%A4%A5%BA
 
 
ダウンロード先
OneDrive
PixMark栞無月_20151126_x86.zip
test30_ListViewで画像ストック_20151126.7z