/// <summary> /// 绘制TTL图像 /// </summary> private void DrawTtl() { this.TtlCanvas.Children.Clear(); Polyline polyline = new Polyline() { Stroke = Brushes.Black, StrokeThickness = 1 }; int tempCellCount = 0; foreach (TtlStage ttlStage in this.TtlStages) { for (int i = 0; i < ttlStage.Repeat; i++) { foreach (TtlSection section in ttlStage.TtlSections) { TtlStatus sectionStatus = section.Status; double sectionStartX = tempCellCount * this._unitWidth; double sectionStartY = sectionStatus == TtlStatus.High ? 0 : this._unitHeight; polyline.Points.Add(new Point(sectionStartX, sectionStartY)); tempCellCount += (int)(section.Length * 2); double cellEndPointX = tempCellCount * this._unitWidth; double cellEndPointY = sectionStatus == TtlStatus.High ? 0 : this._unitHeight; polyline.Points.Add(new Point(cellEndPointX, cellEndPointY)); } } } this.TtlCanvas.Children.Add(polyline); }
/// <inheritdoc /> public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { TtlStatus status = (TtlStatus)value; switch (status) { case TtlStatus.High: return("高电平"); case TtlStatus.Low: return("低电平"); default: throw new ArgumentOutOfRangeException(); } }