using Hydro.MapView; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Hydro.MapUI { public partial class Form_Magnifier : Form { Template _template = null; float xMin = 9999999999999, yMin = 9999999999999; public Form_Magnifier(List list) { InitializeComponent(); _template = new Template(); _template.network = new MapViewNetWork(); _template.network.Nodes.AddRange(list.FindAll(o=>o is NodeViewModel).Select(o=>o as NodeViewModel).ToList()); _template.network.Links.AddRange(list.FindAll(o => o is LinkViewModel).Select(o => o as LinkViewModel).ToList()); _template.network.Links.ForEach(l=> { if (!_template.network.Nodes.Contains( l.StartNode)) { _template.network.Nodes.Add(l.StartNode); } if (!_template.network.Nodes.Contains(l.EndNode)) { _template.network.Nodes.Add(l.EndNode); } }); _template.network.Nodes.ForEach(n => { if (xMin > n.X) xMin = n.X; if (yMin > n.Y) yMin = n.Y; }); //_template.network.MapObjects.ForEach(o => o.Selected = false); 转换器(); } private void Form_Magnifier_Load(object sender, EventArgs e) { MapViewer map = new MapViewer(); map.Dock = DockStyle.Fill; this.Controls.Add(map); old_map = GlobalObject.map; GlobalObject.map = map; old_fr = GlobalObject.PropertyForm.GetWindow(); GlobalObject.PropertyForm.SetWindows(this); map.SetData(_template); map.SetInvalidated(); } private void 转换器() { _template.network.Nodes.ForEach(n => { n.X -= xMin; n.X *= 10; n.Y -= yMin; n.Y *= 10; }); } private void 还原器() { _template.network.Nodes.ForEach(n => { n.X /= 10; n.X += xMin; n.Y /= 10; n.Y += yMin; }); } private void Form_Magnifier_FormClosing(object sender, FormClosingEventArgs e) { 还原器(); //_template.network.MapObjects.ForEach(o => o.Selected = true); GlobalObject.map = old_map; //GlobalObject.PropertyForm.SetWindows(old_fr); } MapViewer old_map; Form old_fr; } }