質問編集履歴
1
詳細なコード内容の追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -10,8 +10,10 @@
|
|
10
10
|
|
11
11
|

|
12
12
|
|
13
|
-
黄緑の部分は,ノードをきれいに並べたいがために
|
13
|
+
黄緑の部分は,ノードをきれいに並べたいがために,Gridの上にWrapPanelをしいたコントロールを作成し,使用しています.
|
14
|
+
(Gridを使用しているのは,黄色のコントロールを2分割にしているためです)
|
15
|
+
黄緑で囲われた部分をドラッグすると,2つのコントロールがまとめて動くような形にしたいです.
|
14
|
-
しかし,Canvas上にWrapPanelを置き,その上に更にコントロールを置くことで,矢印の座標がうまくとれなくなりました.もちろんCanvasの間に
|
16
|
+
しかし,Canvas上にGrid-WrapPanelを置き,その上に更にコントロールを置くことで,矢印の座標がうまくとれなくなりました.もちろんCanvasの間にGrid-WrapPanelを入れたことが原因なのはわかっておりますが…
|
15
17
|
|
16
18
|
・コントロール群をまとめて動かす
|
17
19
|
・矢印をコントロール毎に引く
|
@@ -19,4 +21,38 @@
|
|
19
21
|
なお,パネル毎に矢印を引くというのは,このプログラムの利用文脈と異なるのでできればしたくないです.
|
20
22
|
|
21
23
|
文章がわかりにくくてすみません.
|
22
|
-
ご教授お願いいたします.
|
24
|
+
ご教授お願いいたします.
|
25
|
+
|
26
|
+
==追記==
|
27
|
+
ご指摘ありがとうございます.
|
28
|
+
座標は以下のように取得しています
|
29
|
+
|
30
|
+
1. Canvas/Controlの時
|
31
|
+
|
32
|
+
Point startPoint = this.TranslatePoint(new Point(0, 0), this.grid1); //始点
|
33
|
+
Point endPoint = this.TranslatePoint(new Point(0, 0), this.grid1); //終点
|
34
|
+
|
35
|
+
//コントロールをキャンバスにセット
|
36
|
+
Canvas.SetLeft(Control1, 100);
|
37
|
+
Canvas.SetTop(Control1, 100);
|
38
|
+
Canvas.SetLeft(Control2, 200);
|
39
|
+
Canvas.SetTop(Control2, 200); //座標は適当です
|
40
|
+
|
41
|
+
//矢印の始点・終点のセット
|
42
|
+
startPoint.X = Canvas.GetLeft(Control1);
|
43
|
+
startPoint.Y = Canvas.GetTop(Control1);
|
44
|
+
endPoint.X = Canvas.GetLeft(Control2);
|
45
|
+
endPoint.Y = Canvas.GetTop(Control2);
|
46
|
+
|
47
|
+
2. Canvas/WrapPanel/Controlの時
|
48
|
+
|
49
|
+
Gridの上にWrappanelを置き,黄色のControlを置く場所(ControlArea)を用意しています.
|
50
|
+
|
51
|
+
startPoint.X = Canvas.GetLeft(WrapPanel.ControlArea);
|
52
|
+
startPoint.Y = Canvas.GetTop(WrapPanel.ControlArea);
|
53
|
+
・・・
|
54
|
+
|
55
|
+
のように書きたいです.
|
56
|
+
ビルドはできますが,生成時矢印は表示されません.
|
57
|
+
|
58
|
+
よろしくお願いします.
|