質問編集履歴

1

詳細なコード内容の追記

2015/12/17 07:22

投稿

hoijiisan
hoijiisan

スコア8

test CHANGED
File without changes
test CHANGED
@@ -22,9 +22,13 @@
22
22
 
23
23
 
24
24
 
25
- 黄緑の部分は,ノードをきれいに並べたいがために現在はWrapPanelを使用ます.黄緑で囲われ部分をドラッグすると,2つのコントロールがまとめ動くような形にしたす.
25
+ 黄緑の部分は,ノードをきれいに並べたいがために,Gridの上にWrapPanelをしいたコントロールを作成し,使用していす.
26
26
 
27
+ (Gridを使用しているのは,黄色のコントロールを2分割にしているためです)
28
+
29
+ 黄緑で囲われた部分をドラッグすると,2つのコントロールがまとめて動くような形にしたいです.
30
+
27
- しかし,Canvas上にWrapPanelを置き,その上に更にコントロールを置くことで,矢印の座標がうまくとれなくなりました.もちろんCanvasの間にPanelを入れたことが原因なのはわかっておりますが…
31
+ しかし,Canvas上にGrid-WrapPanelを置き,その上に更にコントロールを置くことで,矢印の座標がうまくとれなくなりました.もちろんCanvasの間にGrid-WrapPanelを入れたことが原因なのはわかっておりますが…
28
32
 
29
33
 
30
34
 
@@ -41,3 +45,71 @@
41
45
  文章がわかりにくくてすみません.
42
46
 
43
47
  ご教授お願いいたします.
48
+
49
+
50
+
51
+ ==追記==
52
+
53
+ ご指摘ありがとうございます.
54
+
55
+ 座標は以下のように取得しています
56
+
57
+
58
+
59
+ 1. Canvas/Controlの時
60
+
61
+
62
+
63
+ Point startPoint = this.TranslatePoint(new Point(0, 0), this.grid1); //始点
64
+
65
+ Point endPoint = this.TranslatePoint(new Point(0, 0), this.grid1); //終点
66
+
67
+
68
+
69
+ //コントロールをキャンバスにセット
70
+
71
+ Canvas.SetLeft(Control1, 100);
72
+
73
+ Canvas.SetTop(Control1, 100);
74
+
75
+ Canvas.SetLeft(Control2, 200);
76
+
77
+ Canvas.SetTop(Control2, 200); //座標は適当です
78
+
79
+
80
+
81
+ //矢印の始点・終点のセット
82
+
83
+ startPoint.X = Canvas.GetLeft(Control1);
84
+
85
+ startPoint.Y = Canvas.GetTop(Control1);
86
+
87
+ endPoint.X = Canvas.GetLeft(Control2);
88
+
89
+ endPoint.Y = Canvas.GetTop(Control2);
90
+
91
+
92
+
93
+ 2. Canvas/WrapPanel/Controlの時
94
+
95
+
96
+
97
+ Gridの上にWrappanelを置き,黄色のControlを置く場所(ControlArea)を用意しています.
98
+
99
+
100
+
101
+ startPoint.X = Canvas.GetLeft(WrapPanel.ControlArea);
102
+
103
+ startPoint.Y = Canvas.GetTop(WrapPanel.ControlArea);
104
+
105
+ ・・・
106
+
107
+
108
+
109
+ のように書きたいです.
110
+
111
+ ビルドはできますが,生成時矢印は表示されません.
112
+
113
+
114
+
115
+ よろしくお願いします.