グループ化の続き
前回と前々回のを足して
グループ化したいThumbをマウスのドラッグで範囲選択してグループ化と解除
ここまでできた
青枠はグループの枠でただの目印
回転角度と拡大率指定のスライダーはまだ動かせない、これができたらテストはほぼ終了なんだけどねえ
デザイン画面とXAML
VBコード
グループ化の方法を少し変更した
前回は既存のグループと単体のThumbをグループ化するときは、既存のグループにThumbを足す形にしていたけど、別グループを新規作成してそこに既存のグループとThumbを入れるようにした
グループ1(t1, t2) + t3, t4のとき
前回 グループ1(t1, t2, t3, t4)
今回 グループ2(グループ1(t1, t2), t3, t4)
グループ化解除した時は今回のほうが自然な感じなんだけど、前回は気づかなくて余計なことをしていたw
グループの枠表示
グループに属しているThumbをクリックした時に、そのグループが収まる青枠を表示するようにした、目印用
枠の表示にPathクラスとRectangleGeometryを使うのは前回の範囲選択の赤枠の表示と同じ方法、このPathはWakuって名前にした、586行目
枠の位置や大きさになるRectはBoundって名前にした、このBoundの値を変更するときに同時にWakuのDataも更新するようにした、598行目
この2つをGroup2に持たせた。
さっきのグループ化の方法変更でグループ直下のThumbリストは意味がなくなったので廃止、583行目
グループの枠の表示の切り替えタイミングは
選択Thumbを切り替えた時
グループ化した時
グループ化解除した時
この3つ
選択グループが変わった時ってことで
ActiveGroupって名前のGroup2のプロパティを用意して(55行目)
この値を変更(Set)した時に枠の表示も切り替えることにした(60行目から)
今思った
枠を表示するときはCanvas.Children.Add
非表示にするときはCanvas.Children.Remove
っていう追加と削除で行っているけど
表示value.Waku.Visibility = Visibility.Visible
非表示value.Waku.Visibility = Visibility.Collapsed
文字通りこっちのほうがいいかも?
今回のコード全部は
Wpf_test126_グループ化9 - Visual Studio Team Services
https://gogowaten.visualstudio.com/WPF/_git/WPF_test7?path=%2FWpf_test126_%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97%E5%8C%969&version=GBmaster&_a=contents
関連記事
前々回
WPFとVB.NET、エクセルのグループ化とグループ化解除を真似したい3 ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
http://blogs.yahoo.co.jp/gogowaten/14187560.html
前回
WPFとVB.NET、マウスドラッグ移動で範囲選択、枠表示して枠内のものを取得 ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
http://blogs.yahoo.co.jp/gogowaten/14190065.html