以下两个类对MapXtrme2004 asp.net鹰眼功能进行了完全的封装。
用法:
1
private
void
Page_Load(
object
sender, System.EventArgs e)
2![ExpandedBlockStart.gif](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
3
// 在此处放置用户代码以初始化页面
4
Overview oc = new Overview(MapControl1,MapControl2);
5
6
if(!IsPostBack)
7![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
8
9
10
}
11
}
![None.gif](/Images/OutliningIndicators/None.gif)
2
![ExpandedBlockStart.gif](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](/Images/OutliningIndicators/ContractedBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
3
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
4
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
5
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
6
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
7
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
8
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
9
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
10
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
11
![ExpandedBlockEnd.gif](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
1
/**/
/* 作者:xiexiaokui
2
* 时间:2005-10-18
3
* 功能:asp.net鹰眼
4
*/
5
using
System;
6
using
MapInfo.Web.UI.WebControls;
7
using
MapInfo.Geometry;
8
using
MapInfo.Styles;
9
using
System.Drawing;
10
using
MapInfo.Data;
11![None.gif](/Images/OutliningIndicators/None.gif)
12![ExpandedBlockStart.gif](/Images/OutliningIndicators/ExpandedBlockStart.gif)
/**/
/// <summary>
13
/// OverviewTool 的摘要说明。
14
/// </summary>
15
public
class
OverviewMapToolEventArgs:System.EventArgs
16![ExpandedBlockStart.gif](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
17
System.Drawing.Point[] m_points;
18
public OverviewMapToolEventArgs(System.Drawing.Point[] points)
19![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
20
this.m_points = points;
21
}
22![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
23
public System.Drawing.Point[] Points
24![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
25
get
26![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
27
return m_points;
28
}
29
set
30![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
31
m_points = value;
32
}
33
}
34![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
35
}
36![None.gif](/Images/OutliningIndicators/None.gif)
37
public
delegate
void
OverviewMapToolEventHandler(
object
sender,OverviewMapToolEventArgs e);
38![None.gif](/Images/OutliningIndicators/None.gif)
39![None.gif](/Images/OutliningIndicators/None.gif)
40
public
class
OverviewMapTool:MapTool
41![ExpandedBlockStart.gif](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
42
public static readonly string Toolname = "MapInfoWebOverview";
43
// public DPoint Point1,Point2;
44![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
45
string m_clientCodeSource;
46
string m_clientStartMethod;
47
string m_clientStopMethod;
48
string m_cursorUrl;
49
string m_name;
50![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
51![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
52
public event OverviewMapToolEventHandler OverviewMapToolStop;
53![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
54
protected void OnOverviewMapToolStop(OverviewMapToolEventArgs e)
55![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
56
if(this.OverviewMapToolStop != null)
57
this.OverviewMapToolStop(this,e);
58
}
59![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
60
public OverviewMapTool()
61![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
62
this.ClientStartMethod = "MapInfoWebRectangleStart";
63
this.ClientStopMethod = "MapInfoWebRectangleStop";
64
this.Name = Toolname;
65
}
66
public override string ClientCodeSource
67![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
68
get
69![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
70
return m_clientCodeSource;
71
}
72
set
73![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
74
m_clientCodeSource = value;
75
}
76
}
77![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
78
public override string ClientStartMethod
79![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
80
get
81![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
82
return m_clientStartMethod;
83
}
84
set
85![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
86
m_clientStartMethod = value;
87
}
88
}
89
public override string ClientStopMethod
90![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
91
get
92![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
93
return m_clientStopMethod;
94
}
95
set
96![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
97
m_clientStopMethod = value;
98
}
99
}
100
public override string CursorUrl
101![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
102
get
103![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
104
return m_cursorUrl;
105
}
106
set
107![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
108
m_cursorUrl = value;
109
}
110
}
111
public override string Name
112![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
113
get
114![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
115
return m_name;
116
}
117
set
118![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
119
m_name = value;
120
}
121
}
122![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
123![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
124
public override void Execute(string dataString, System.Collections.ArrayList selLayers, MapInfo.Mapping.Map map)
125![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
126
127
// DPoint dp1,dp2;
128
System.Drawing.Point[] points = base.ExtractPoints(dataString);
129
// map.DisplayTransform.FromDisplay(points[0],out dp1);
130
// map.DisplayTransform.FromDisplay(points[1],out dp2);
131
132
133
this.OnOverviewMapToolStop(new OverviewMapToolEventArgs(points));
134
// OverviewMapTool omt = (OverviewMapTool)this.MapControl2.MapTools[MapControl2.MapTools.Count-1];
135
// MapInfo.Geometry.DPoint dp1 = omt.Point1;
136
// MapInfo.Geometry.DPoint dp2 = omt.Point2;
137
// System.Drawing.Point p1,p2;
138![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
139
// MapControl2.Map.DisplayTransform.ToDisplay(dp1,out p1);
140
// MapControl2.Map.DisplayTransform.ToDisplay(dp2,out p2);
141
// if(Math.Min(Math.Abs(points[0].X-points[1].X),Math.Abs(points[0].Y-points[1].Y))<5)
142
// {
143
// m_mainMapControl.Map.Center = dp1;
144
// }
145
// else
146
// {
147
// MapInfo.Geometry.DRect rect = new DRect(dp1,dp2);
148
// m_mainMapControl.Map.SetView(rect,m_mainMapControl.Map.GetDisplayCoordSys());
149
// }
150![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
151
}
152![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
153![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
154
}
155
class
Overview
156![ExpandedBlockStart.gif](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
157
158
MapInfo.Web.UI.WebControls.MapControl m_mainMapControl;
159
MapInfo.Web.UI.WebControls.MapControl m_overviewMapControl;
160
public Overview(MapInfo.Web.UI.WebControls.MapControl mainMapControl,MapInfo.Web.UI.WebControls.MapControl overviewMapControl)
161![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
162
MainMapControl = mainMapControl;
163
OverviewMapControl = overviewMapControl;
164
}
165![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
166
public MapInfo.Web.UI.WebControls.MapControl MainMapControl
167![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
168
get
169![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
170
return m_mainMapControl;
171
}
172
set
173![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
174
m_mainMapControl = value;
175
m_mainMapControl.PreRender += new EventHandler(MainMapControl_PreRender);
176
}
177
}
178
public MapInfo.Web.UI.WebControls.MapControl OverviewMapControl
179![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
180
get
181![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
182
return m_overviewMapControl;
183
}
184
set
185![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
186
187
188
MapInfo.Data.Table table = MapInfo.Engine.Session.Current.Catalog.GetTable("temp_overview");
189
m_overviewMapControl = value;
190
OverviewMapTool omt = new OverviewMapTool();
191
omt.OverviewMapToolStop += new OverviewMapToolEventHandler(omt_OverviewMapToolStop);
192
this.m_overviewMapControl.MapTools.Add(omt);
193
this.m_overviewMapControl.MapTools.CurrentTool = omt.Name;
194
if(table == null)
195![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
196
197![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
198
this.m_overviewMapControl.Map.Load(new MapInfo.Mapping.MapTableLoader(m_mainMapControl.Map.Layers.GetTableEnumerator()));
199![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
200
MapInfo.Data.TableInfo ti = MapInfo.Data.TableInfoFactory.CreateTemp("temp_overview");
201
MapInfo.Data.TableSessionInfo tsi = new MapInfo.Data.TableSessionInfo();
202![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
203
table = MapInfo.Engine.Session.Current.Catalog.CreateTable(ti);
204![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
205
MapInfo.Mapping.FeatureLayer fl = new MapInfo.Mapping.FeatureLayer(table);
206
m_overviewMapControl.Map.Layers.Insert(0,fl);
207
}
208
209
}
210
}
211
protected void MainMapControl_PreRender(object sender, EventArgs e)
212![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
213
214
DRect dr = this.m_mainMapControl.Map.Bounds;
215
FeatureGeometry fg = new MapInfo.Geometry.Rectangle(m_mainMapControl.Map.GetDisplayCoordSys(),dr);
216
MapInfo.Styles.SimpleLineStyle sls = new MapInfo.Styles.SimpleLineStyle(new LineWidth(1,LineWidthUnit.Pixel),2,Color.Red);
217
MapInfo.Styles.SimpleInterior si = new MapInfo.Styles.SimpleInterior(1);
218
MapInfo.Styles.AreaStyle arst = new MapInfo.Styles.AreaStyle(sls,si);
219
// MapInfo.Styles.CompositeStyle cs = new MapInfo.Styles.CompositeStyle(arst,null,null,null);
220
MapInfo.Styles.CompositeStyle cs = new MapInfo.Styles.CompositeStyle(arst);
221
MapInfo.Data.Feature f = new Feature(fg,arst);
222![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
223
MapInfo.Data.Table table = MapInfo.Engine.Session.Current.Catalog.GetTable("temp_overview");
224
(table as ITableFeatureCollection).Clear();
225
table.InsertFeature(f);
226
227
m_overviewMapControl.Map.Layers["temp_overview"].Invalidate();
228
//table.Refresh();
229
230
}
231![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
232
private void omt_OverviewMapToolStop(object sender, OverviewMapToolEventArgs e)
233![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
234
DPoint dp1,dp2;
235
System.Drawing.Point[] points = e.Points;
236
m_overviewMapControl.Map.DisplayTransform.FromDisplay(points[0],out dp1);
237
m_overviewMapControl.Map.DisplayTransform.FromDisplay(points[1],out dp2);
238
// OverviewMapTool omt = (OverviewMapTool)this.MapControl2.MapTools[MapControl2.MapTools.Count-1];
239
// MapInfo.Geometry.DPoint dp1 = omt.Point1;
240
// MapInfo.Geometry.DPoint dp2 = omt.Point2;
241
// System.Drawing.Point p1,p2;
242![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
243
// MapControl2.Map.DisplayTransform.ToDisplay(dp1,out p1);
244
// MapControl2.Map.DisplayTransform.ToDisplay(dp2,out p2);
245
if(Math.Min(Math.Abs(points[0].X-points[1].X),Math.Abs(points[0].Y-points[1].Y))<5)
246![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
247
m_mainMapControl.Map.Center = dp1;
248
}
249
else
250![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
251
MapInfo.Geometry.DRect rect = new DRect(dp1,dp2);
252
m_mainMapControl.Map.SetView(rect,m_mainMapControl.Map.GetDisplayCoordSys());
253
}
254
}
255![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
256
}
257![None.gif](/Images/OutliningIndicators/None.gif)
258
![ExpandedBlockStart.gif](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](/Images/OutliningIndicators/ContractedBlock.gif)
2
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
3
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
4
![ExpandedBlockEnd.gif](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
5
![None.gif](/Images/OutliningIndicators/None.gif)
6
![None.gif](/Images/OutliningIndicators/None.gif)
7
![None.gif](/Images/OutliningIndicators/None.gif)
8
![None.gif](/Images/OutliningIndicators/None.gif)
9
![None.gif](/Images/OutliningIndicators/None.gif)
10
![None.gif](/Images/OutliningIndicators/None.gif)
11
![None.gif](/Images/OutliningIndicators/None.gif)
12
![ExpandedBlockStart.gif](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](/Images/OutliningIndicators/ContractedBlock.gif)
13
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
14
![ExpandedBlockEnd.gif](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
15
![None.gif](/Images/OutliningIndicators/None.gif)
16
![ExpandedBlockStart.gif](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](/Images/OutliningIndicators/ContractedBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
17
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
18
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
19
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
20
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
21
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
22
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
23
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
24
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
25
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
26
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
27
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
28
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
29
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
30
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
31
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
32
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
33
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
34
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
35
![ExpandedBlockEnd.gif](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
36
![None.gif](/Images/OutliningIndicators/None.gif)
37
![None.gif](/Images/OutliningIndicators/None.gif)
38
![None.gif](/Images/OutliningIndicators/None.gif)
39
![None.gif](/Images/OutliningIndicators/None.gif)
40
![None.gif](/Images/OutliningIndicators/None.gif)
41
![ExpandedBlockStart.gif](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](/Images/OutliningIndicators/ContractedBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
42
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
43
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
44
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
45
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
46
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
47
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
48
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
49
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
50
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
51
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
52
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
53
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
54
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
55
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
56
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
57
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
58
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
59
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
60
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
61
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
62
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
63
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
64
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
65
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
66
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
67
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
68
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
69
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
70
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
71
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
72
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
73
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
74
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
75
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
76
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
77
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
78
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
79
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
80
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
81
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
82
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
83
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
84
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
85
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
86
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
87
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
88
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
89
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
90
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
91
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
92
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
93
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
94
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
95
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
96
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
97
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
98
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
99
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
100
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
101
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
102
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
103
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
104
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
105
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
106
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
107
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
108
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
109
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
110
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
111
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
112
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
113
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
114
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
115
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
116
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
117
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
118
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
119
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
120
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
121
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
122
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
123
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
124
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
125
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
126
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
127
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
128
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
129
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
130
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
131
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
132
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
133
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
134
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
135
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
136
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
137
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
138
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
139
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
140
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
141
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
142
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
143
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
144
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
145
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
146
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
147
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
148
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
149
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
150
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
151
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
152
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
153
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
154
![ExpandedBlockEnd.gif](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
155
![None.gif](/Images/OutliningIndicators/None.gif)
156
![ExpandedBlockStart.gif](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](/Images/OutliningIndicators/ContractedBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
157
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
158
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
159
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
160
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
161
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
162
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
163
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
164
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
165
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
166
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
167
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
168
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
169
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
170
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
171
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
172
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
173
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
174
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
175
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
176
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
177
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
178
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
179
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
180
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
181
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
182
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
183
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
184
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
185
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
186
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
187
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
188
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
189
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
190
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
191
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
192
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
193
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
194
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
195
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
196
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
197
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
198
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
199
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
200
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
201
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
202
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
203
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
204
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
205
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
206
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
207
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
208
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
209
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
210
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
211
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
212
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
213
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
214
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
215
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
216
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
217
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
218
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
219
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
220
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
221
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
222
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
223
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
224
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
225
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
226
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
227
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
228
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
229
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
230
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
231
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
232
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
233
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
234
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
235
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
236
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
237
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
238
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
239
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
240
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
241
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
242
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
243
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
244
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
245
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
246
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
247
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
248
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
249
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
250
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
251
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
252
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
253
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
254
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
255
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
256
![ExpandedBlockEnd.gif](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
257
![None.gif](/Images/OutliningIndicators/None.gif)
258
![None.gif](/Images/OutliningIndicators/None.gif)