午後わてんのブログ

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

ラベルに頂点座標を表示できるようにした、複数の画像を並べて重ねて1枚の画像にするPixtack紫陽花2.4.24.110

前回、2015/01/07は1日前
 
 
図形のコピー元とコピー先の頂点情報と色が同期してしまう不具合を修正
画像のコピペで下の画像がうつりこんでいたのを修正
頂点座標を表示できるようにした

線の頂点ラベルに座標を表示
コピペした図形を編集、色変更、ラベルの表示切り替え、頂点移動
グリッドは32
単純なことなんだけど以外に時間がかかった
無駄な処理を見つけて直したり
ラベルの文字の表示位置の融通がきかなかったり
外側のマージンは設定できるのに内側の文字とのマージンの設定がないから
意図したところに文字を表示するには文字を画像として描画して
その画像をラベルのImageに設定するか
背景用のラベルと文字表示用のラベルを別々に用意して重ねて表示するしかなさそう
でも処理が重くなるしそこまでして調節したいわけでもないから今回の形になった
 
図形のコピー元とコピー先の頂点情報と色が同期してしまう不具合の修正
やっぱり変数の値型と参照型だった
頂点情報はPointの配列(コレクション)、色はPenでどっちも参照型なのに
コピー先の頂点情報=コピー元の頂点情報
って指定していたのでおかしくなっていたので
Dim pp As New List(Of Point)(OriExp.PathPoints)
コピー先の頂点情報=New List(Of Point)(コピー元の頂点情報)
に書きなおした
値型と参照型、今でも理解できているのか怪しいのに1年前ならなおさら
その状態で書いてきたから他にも間違っているところがありそう
 

”本当に必要のない限りメソッドやプロパティの中で引数の値を変更するのは避けるようにしましょう。そのような方法でプログラムしていると、プログラムが巨大になるほど収拾がつかなくなってしまいます。

 

この言葉は今となっては刺さるなあ、そういうことだったのかあ
次回からそうしよう(今からとは言っていない)
Stringが参照型ってのが意外というか納得できないけど、そういうものなのか(思考停止)
 
ダウンロード先
ヤフーボックス
テスト05-2パネル追加.7z
 
次回、2015/01/09は1日後