public override TargetView CreateTargetView(Target taget)
 {
     lock (_locker)
     {
         //if (displayer is TextDisplayer)
         //{
         //    if(taget is TargetDot)
         //        return new DoNothingTargetView();
         //}
         CoordinateTargetView view;
         if (taget == null)
         {
             return(null);
         }
         if (taget.GetType() == typeof(TargetDot))
         {
             view = new CoordinateTargetDotView(taget, _sectorDrawer[taget.SectorIndex], ((GraphicTrackDisplayer)displayer).Factory, ((GraphicTrackDisplayer)displayer).coordinateSystem);
         }
         else
         {
             view = new CoordinateTargetTrackView(taget, _sectorDrawer[taget.SectorIndex], ((GraphicTrackDisplayer)displayer).Factory, ((GraphicTrackDisplayer)displayer).coordinateSystem);
         }
         return(view);
     }
 }
        private void DisplayControl_MouseClick(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                return;
            }
            bool stopFindingDot = false;

            lock (_locker)
            {
                //鼠标点击事件转发给每个视图对象处理,倒叙遍历,因为遍历过程中会有航迹的删除和添加
                for (int i = _DotViews.Length - 1; i >= 0; i--)
                {
                    for (int j = _DotViews[i].Count - 1; j >= 0; j--)
                    {
                        if (_DotViews[i][j].HandleMouseClick(e.Location)) //点击位置附近有多个目标时,只选取一个目标
                        {
                            stopFindingDot = true;
                            break;
                        }
                    }

                    if (stopFindingDot)
                    {
                        break;
                    }
                }

                for (int i = _TrackViews.Length - 1; i >= 0; i--)
                {
                    for (int j = _TrackViews[i].Count - 1; j >= 0; j--)
                    {
                        if (_TrackViews[i][j].HandleMouseClick(e.Location))
                        {
                            return;
                        }
                    }
                }

                //运行到此处说明没有点击位置没有任何目标,为MouseTargetTracker生成一个目标点
                CoordinateTargetDotView view = GenerateGraphicTargetDotViewFromMouseLocation(e.Location);
                view.HandleMouseClick(e.Location);
            }
        }