const int dashStyleTimes = 10; //显示边界风格切换的次数,到达10次之后切换边界风格,DashDot->Dash或Dash->DashDot public GraphicWaveGateView(WaveGate waveGate, OverViewDisplayer ovd) { displayer = ovd; canvas = displayer.Canvas; this.waveGate = waveGate; waveGateBrush = canvas.CreateSolidColorBrush(waveGate.IsSemiAuto ? Tools.GetColorFFromRgb(255, 255, 0) : Tools.GetColorFFromRgb(245, 222, 179)); coodinateSystem = displayer.coordinateSystem; //Selected = false; PolarCoordinate c = new PolarCoordinate { Az = waveGate.BeginAngle, //ProjectedDis = waveGate.BeginDistance; //之前版本将距离赋给ProjectedDis Dis = waveGate.BeginDistance }; innerLeft = coodinateSystem.CoordinateToPoint(c); c.Az = waveGate.EndAngle; //c.ProjectedDis = waveGate.EndDistance; //之前版本将距离赋给projectedDis c.Dis = waveGate.EndDistance; outterRight = coodinateSystem.CoordinateToPoint(c); geometry = coodinateSystem.BuildWaveGateGeometry(innerLeft, outterRight); }
public void NotifyChange(WaveGate wg, WaveGateSubjectNotifyState state) { if (wg == null) { return; } if (state == WaveGateSubjectNotifyState.Add) { views.Add(new GraphicWaveGateView(wg, dispalyer)); } else { for (int i = views.Count - 1; i >= 0; i--) { if (views[i].WaveGate == wg) { views[i].Dispose(); views.Remove(views[i]); break; } } } }
public override void MouseUp(object sender, MouseEventArgs e) { if (!isMouseDown) { return; } base.MouseUp(sender, e); WaveGate waveGate = CalWaveGate(); if (waveGate != null) { displayer.SendNewWaveGate(waveGate); } }
public WaveGateAddCommand(WaveGate wg) : base() { this.wg = wg; }
private void Ovd_NewWaveGate(WaveGate waveGate) => new WaveGateAddCommand(waveGate).Execute();
public WaveGateDeleteCommand(WaveGate wg) : base() { this.wg = wg; }