public void UpdateSelectedTarget(Point point, SelectedTargetDraw selectedTargetDraw) { string id = null; double dist = selectedTargetDraw.SelectedDistance; double lengthPrev = selectedTargetDraw.SelectedDistance; foreach (var key in _dynamicObjectEvent.Keys.ToArray()) { if (isNeerPoint(key, point, ref lengthPrev)) { if (dist > lengthPrev) { id = key; dist = lengthPrev; } } } if (dist < selectedTargetDraw.SelectedDistance) { selectedTargetDraw.SelectedDistance = dist; selectedTargetDraw.SelectedTrack = _dynamicObjectEvent[id]; SelectedId = id; } else { SelectedId = null; } }
public TracksCanvasDrawer(LocatorAndBorder locator) { _locator = locator; _tracksData = new TracksCanvas(_locator); _tracksShow = _tracksData; if (IsVisibility) { addChildren(_tracksShow); } _tracksData.SetColor(_fill, _stroke); _locator.OnMapRefreshed += OnMapRefreshed; _menuBarsInfo = MenuBarsBaseInfo.Instance; _menuBarsInfo.PropertyChanged += menuBarsInfo_PropertyChanged; _timer = new System.Threading.Timer(callbackUpdateTimeOutTracks, null, 1000, 1000); OnMapRefreshed(); _selectedTargetDraw = SelectedTargetDraw.Instance; }
public TracksDraws(ILocator locator) { LogService.Info("初始化信号源配置"); string path = System.IO.Directory.GetParent(System.Windows.Forms.Application.LocalUserAppDataPath).FullName; _locatorAndLimit = LocatorAndBorder.Instance; ConfigPath = System.IO.Path.Combine(path, "信号源配置.xml"); loadConfig(); cctv = new CCTVNodeShow(_locatorAndLimit); this.Children.Add(cctv); _selectedTargetDraw = SelectedTargetDraw.Instance; _selectedTargetDraw.Init(_locatorAndLimit); this.Children.Add(_selectedTargetDraw); Canvas.SetZIndex(cctv, 0); Canvas.SetZIndex(_selectedTargetDraw, 1000); MenuBarsBaseInfo.Instance.PropertyChanged += _menuBarsInfo_PropertyChanged; LogService.Info("初始化信号源配置完毕"); }
static SelectedTargetDraw() { Instance = new SelectedTargetDraw(); }