WPFとVB.NET、追加したウィンドウをShowDialogで開く、開くときに値を持たせる
前回の記事
WPFとVB.NETでカラーピッカーその2、HSVとRGBで色指定 ( ガーデニング ) - 午後わてんのブログ - Yahoo!ブログ
http://blogs.yahoo.co.jp/gogowaten/14025927.html
http://blogs.yahoo.co.jp/gogowaten/14025927.html
ここで作ったカラーピッカーを取り入れて色を取得できるようにした
色の選択ボタン押すと
この動作はカラーピッカー用の別ウィンドウを追加して作っておいて
メインのウィンドウから呼び出す処理
カラーピッカーのウィンドウでOKが押されたら選択した色を
メインのウィンドウに渡す処理
追加→ウィンドウ
もしくは
これで
(画面ではWindow1ってなっているけど実際にはColorPaletteにした)
6行目の
xmlns:local="clr-namespace:Pixtack紫陽花八重紫"
ここの名前は今のままにしておいて
それ以外はコピペして
あとはOKボタンとキャンセルボタンが要るので追加
キャンセルボタンのプロパティに IsCancel="True"
OKボタンのプロパティに IsDefault="True"
この設定が重要な気がする
XAMLの方の準備はこれでOK
次はカラーピッカーのVBのコード
XAMLのほうで追加した
OKボタンとキャンセルボタンのクリックイベントにそれぞれ
DialogResultをTrueとFalseを返すようにしておく
ウィンドウを開いた(ShowDialog)時には元の色を表示したいので
ShowDialogの時に色を受け取れるようにする
受け取った色をARGBそれぞれのスライダーに設定する
色が透明色の時は赤色を設定する
以上は
これはここを参照した
WPFサンプル:ShowメソッドとShowDaialogメソッド:Gushwell's C# Dev Notes
http://gushwell.ldblog.jp/archives/52285322.html
VB 2つ目のフォーム - Show, ShowDialog, DialogResult, Ownerなど
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard29.htm
あとはメインのウィンドウの方での設定は
カラーピッカーのウィンドウを表示するボタンを
このボタンのクリックイベントに
今の色を渡す処理とOKボタンが押されたら色を受け取る処理
ColorPaletteがカラーピッカーのウィンドウ
rectSelectColorは色表示用のRectangle
cp.Owner=Me
この1行は要らないかな、使っていない
ColorPaletteをダイアログ形式で開くのが
cp.ShowDialog
このとき元の色ってことでrectSelectColorの色を引数に入れている
開いたカラーピッカーのウィンドウでOKボタンが押されたら
ShowDialogにTrueが返ってくる
キャンセルボタンだったらFalseが返ってくるようにしたので
Falseならなにもしない
TrueならrectSelectColorの塗り色Fillをカラーピッカーウィンドウの
rectMihonの塗り色Fillと同じにする処理をする
このあたりのShowdialogのことは
WPFサンプル:ShowメソッドとShowDaialogメソッド:Gushwell's C# Dev Notesここを参照した
http://gushwell.ldblog.jp/archives/52285322.html
これでできたけどいまいちわかってなくて
とくにカラーピッカーのウィンドウでOK、キャンセルのどちらのボタンを
クリックした時でもカラーピッカーのウィンドウを閉じてくれる
この閉じる処理はどこにも書いていないんだけどしっかり閉じてくれるだよねえ
ダウンロード先
Pixtack紫陽花八重紫_20160403.zip
Pixtack紫陽花八重紫 - Visual Studio Team Services
https://gogowaten.visualstudio.com/DefaultCollection/WPF/_git/Pixtack2nd?path=%2FPixtack%E7%B4%AB%E9%99%BD%E8%8A%B1%E5%85%AB%E9%87%8D%E7%B4%AB&version=GBmaster&_a=contents
https://gogowaten.visualstudio.com/DefaultCollection/WPF/_git/Pixtack2nd?path=%2FPixtack%E7%B4%AB%E9%99%BD%E8%8A%B1%E5%85%AB%E9%87%8D%E7%B4%AB&version=GBmaster&_a=contents