午後わてんのブログ

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

WPFとVBでアプリ作る準備その9、XAMLでコントロールのレイアウト

レイアウト
 
前回の記事

 

gogowaten.hatenablog.com

 

 
WPFVBでアプリ作る準備その8、コントロールの削除、変数の中身が変化した時に何かの処理をしたい時はPropertyのSetで ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
http://blogs.yahoo.co.jp/gogowaten/13926863.html
WPFVBでアプリ作る準備その8の記事のコード全文 ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
http://blogs.yahoo.co.jp/gogowaten/13926875.html
の続き
 
 
Pixtack紫陽花のレイアウト

f:id:gogowaten:20191025111333p:plain

ウィンドウは左右に分けてどちらも固定表示で非表示とかにはできなかった
右側が編集する画像表示
左側は必要な機能を表示させていた
必要じゃないけどあったらいいな機能は別ウィンドウにしていた
メニューバーは無い、ステータスバーはあり
これでほぼ満足していたのでだいたい同じ感じで
 
イメージ 2
こうなった
ウィンドウ上側にメニューバーとツールバーを置いて
別ウィンドウは無くして左側に表示するようにした
ウィンドウ左側を表示非表示の切り替えできるようにした
山吹色のところが選択中の画像を表示するところでこの部分も
表示非表示の切り替えできるようにしてみた
タブはスクロールバーを表示できるようにした
それ以外は一緒
 
イメージ 3
表示の切り替えしているところ
理想は左側を切り離して別ウィンドウで表示とか、タブの一部を切り離して別ウィンドウで表示もできることなんだけど、難しくてできそうにないのでこうなった
 
デザイン画面、XAML

f:id:gogowaten:20191025111347p:plain

特別なことは何もしていなくてコントロールを置いただけ
 
MainWindow

f:id:gogowaten:20191025111357p:plain

Class MainWindow
    Private Sub hyouzi11() Handles menu1.Click, button1.Click
        Dim zero As New GridLength(0)

        If gridColumn0.Width = zero Then
            gridColumn0.Width = New GridLength(200)
        Else
            gridColumn0.Width = zero
        End If
    End Sub
    Private Sub hyouzi22() Handles menu2.Click, button2.Click
        If grid2.Height > 0 Then
            grid2.Height = 0
        Else
            grid2.Height = 100
        End If
    End Sub
End Class
ウィンドウ左側の表示非表示の動作は
正確には表示非表示の切り替えじゃなくて
幅や高さを0にして非表示に見せかけているだけ
 

f:id:gogowaten:20191025111417p:plain

左側のGridはWidthを200に指定している
これを0にすれば
 

f:id:gogowaten:20191025111437p:plain

非表示になる
なのでVBのコードの方で
gridColumn0.Width = 0
って書けばいいのかと思ったら少し違っていて
gridColumn0.Width = New GridLength(0)
こうだった
Gridコントロールの中を分割していて、分割の一部の幅や高さを変更するときは
GridLengthってのを使うみたい
イメージ 8
で、これ
幅0だったら200にして
幅0じゃなかったら0にする
 
 

f:id:gogowaten:20191025111452p:plain

選択画像を表示しようと思っている山吹色のところは
分割していないGridなので
 
イメージ 10
そのまま高さHeight指定でOK
 
WPFのコントロールの配置レイアウトはフォームアプリとはかなり違っていて
自由度も高くていろいろできる!
ツールバーの中にメニューアイテム表示とか、ボタンの中で動画表示とか
 
 
 
予定しているテスト
  • 指定した色を透明にする
 
完了したテスト
  • 画像ファイルドロップで画像表示
  • 画像をマウスドラッグで移動
  • 表示画像のレイヤー間の移動(入れ替え)ZOrder指定
  • 表示画像すべてを画像ファイルとして保存
  • ドラッグ移動時に指定ピクセル数ごとに移動
  • 指定した画像の表示を消す(削除)
  • レイアウト ←New
 
指定色を透明にするは後でいいやってことでテスト終了!
 
この記事の続きは3日後

gogowaten.hatenablog.com

 
WPFVBでPixtack紫陽花の後継 ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
http://blogs.yahoo.co.jp/gogowaten/13937152.html