void ShowLabel(LynxTime ltime, TimeDimention ctd)
        {
            string TimeText = ltime.getTopFormatStr(ctd);

            //string ShortStr = LynxTime.getShortExpressStr(ltime);

            if (Marks.ContainsValue(ltime))
            {
                return;
            }
            double lleft = getLynxTimeXValue(ltime);

            if (!Marks.ContainsKey(lleft))
            {
                Marks.Add(lleft, ltime);
                LynxTime  lt = new LynxTime(ltime);
                TextBlock l  = new TextBlock();
                l.FontSize   = 10;
                l.Foreground = new SolidColorBrush(Colors.Blue);

                l.Text = TimeText;
                ToolTipService.SetToolTip(l, ltime.getTimeString());

                Canvas.SetLeft(l, lleft);
                Canvas.SetTop(l, 0);
                l.Tag = ltime;
                canvasTimeLine.Children.Add(l);
                ll.Add(l);
            }
        }
        private void canvasTimeLine_PointerMoved(object sender, PointerRoutedEventArgs e)
        {
            if (!_IsMouseDown)
            {
                return;
            }

            double cx = e.GetCurrentPoint(canvasTimeLine).Position.X;

            double dx = cx - CurrentX;

            if ((dx < 0.001) && (dx > -0.001))
            {
                return;
            }
            CurrentX = cx;
            double lms = (XShowEndTime - XShowBeginTime).getDoubleValue();

            //if (lms == 0)
            //{
            //    SilverlightLFC.common.Environment.ShowMessage("Error");
            //    return;
            //}
            DeltaMS = dx / canvasTimeLine.Width * lms;

            XShowBeginTime = XShowBeginTime - Convert.ToInt64(DeltaMS);

            XShowEndTime = XShowEndTime - Convert.ToInt64(DeltaMS);



            //textBox1.Text = lms.ToString();
            textBeginTime.Text = XShowBeginTime.getTimeString();
            textEndTime.Text   = XShowEndTime.getTimeString();
            //double UnitWidth = getLynxTimeWidth(maxDimention);

            //int num = Convert.ToInt32(Math.Ceiling(MaxSpace / UnitWidth));
            foreach (FrameworkElement u in canvasTimeLine.Children)
            {
                Canvas.SetLeft(u, Canvas.GetLeft(u) + dx);
            }

            foreach (Panel p in SynchronizationPanelList)
            {
                //Canvas.SetLeft(p, Canvas.GetLeft(p) + dx);
                foreach (FrameworkElement u in p.Children)
                {
                    if (u is ITimeLineControl)
                    {
                        Canvas.SetLeft(u, Canvas.GetLeft(u) + dx);
                    }
                }
            }
            if (XShowBeginTime.getDoubleValue() <= FirstTopUnitTime.getDoubleValue())
            {
                LynxTime NFT = new LynxTime(FirstTopUnitTime);
                NFT.AddTimeSpan(-TimeUnitNum, maxDimention);
                double uw = getLynxTimeWidth(NFT, FirstTopUnitTime);
                //ShowLabel(FirstTopUnitTime, maxDimention);
                ShowLabel(NFT, maxDimention);
                if (uw > MinSpace)
                {
                    ShowXUnit(NFT, FirstTopUnitTime, maxDimention);
                }
                FirstTopUnitTime = NFT;
            }
            if (XShowEndTime.getDoubleValue() >= LastTopUnitTime.getDoubleValue())
            {
                LynxTime NFT = new LynxTime(LastTopUnitTime);
                NFT.AddTimeSpan(TimeUnitNum, maxDimention);
                double uw = getLynxTimeWidth(LastTopUnitTime, NFT);
                //ShowLabel(LastTopUnitTime, maxDimention);
                ShowLabel(NFT, maxDimention);
                if (uw > MinSpace)
                {
                    ShowXUnit(LastTopUnitTime, NFT, maxDimention);
                }
                LastTopUnitTime = NFT;
            }
        }