/// <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();
            }
        }