微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

silverlight 动态线性图 自制控件

public MainPage()
        {
           
            InitializeComponent();

chartshujuimg41 = new Queue<int> { };
            chartshujuimg42 = new Queue<int> { };
            for (int i = 0; i < 50; i++)
            {
                chartshujuimg41.Enqueue(0);
                chartshujuimg42.Enqueue(0);
            }}

   

     Line[] line51 = new Line[50];
     Line[] line52 = new Line[50];
        /// <summary>
        /// 初始化line,数组
        /// </summary>
        /// <param name="css">canvas</param>
        /// <param name="linearr1"></param>
        /// <param name="linearr2"></param>
     void chushihua(Canvas css,Line[] linearr1,Line[] linearr2)
     {
         Point p = new Point();
         p.X = 250;
         p.Y = 250;
         for (int i = 0; i < 50; i++)
         {
             linearr1[i] = new Line();

             linearr1[i].stroke = new SolidColorBrush(Colors.Blue);
             linearr1[i].X1 = p.X - i * 4;
             linearr1[i].Y1 = p.Y;
             linearr1[i].X2 = p.X - i * 4;
             linearr1[i].Y2 = p.Y - 100;
             css.Children.Add(linearr1[i]);
         }
         for (int i = 0; i < 50; i++)
         {
             linearr2[i] = new Line();
             linearr2[i].stroke = new SolidColorBrush(Colors.Red);
             linearr2[i].X1 = p.X - 2 - i * 4;
             linearr2[i].Y1 = p.Y;
             linearr2[i].X2 = p.X - 2 - i * 4;
             linearr2[i].Y2 = p.Y - 100;
             css.Children.Add(linearr2[i]);
         }
         //line1.stroke = new SolidColorBrush(Colors.Blue);
         //line1.X1 = p.X - 0;
         //line1.Y1 = p.Y;
         //line1.X2 = p.X - 0;
         //line1.Y2 = p.Y - 100;
       
     }

       /// <summary>
       /// 修改每个line的长度
       /// </summary>
       /// <param name="q1">数据一</param>
       /// <param name="q2">数据二</param>
       /// <param name="l1"></param>
       /// <param name="l2"></param>
      void chartline(Queue<int> q1,Queue<int> q2,Label l1,Label l2,Line[] linearr2)
      {
       
        
          Point p = new Point();
          p.X = 250;
          p.Y = 250;
          int i=0;
        
       foreach (int item in q1)
       {
           if (i==49)
           {
               l1.Content = "发送:"+item+" kbps";
           }
           linearr1[i].X1 = p.X - i * 4;
           linearr1[i].Y1 = p.Y;
           linearr1[i].X2 = p.X - i * 4;
           linearr1[i].Y2 = p.Y - item;
           i++;
}
              //line[i] = new Line();
              //line[i].stroke = new SolidColorBrush(Colors.Blue);
        
             // canline.Children.Add(line[i]);
       i = 0;
      
              //line2[i] = new Line();
              //line2[i].stroke = new SolidColorBrush(Colors.Red);
        foreach (int item in q2)
        {
            if (i == 49)
            {
                l2.Content = "接收:" + item + " kbps";
            }
            linearr2[i].X1 = p.X - 2 - i * 4;
            linearr2[i].Y1 = p.Y;
            linearr2[i].X2 = p.X - 2 - i * 4;
            linearr2[i].Y2 = p.Y - item;
              i++;
}
           
            //  canline.Children.Add(line2[i]);
         

          //foreach (int item in q1)
          //{
          //    Line line = new Line();
          //    line.stroke = new SolidColorBrush(Colors.Blue);
          //    line.X1 = p.X - 3 * count;
          //    line.Y1 = p.Y;
          //    line.X2 = p.X - 3 * count;
          //    line.Y2 = p.Y - item;
          //    cas.Children.Add(line);
          //    int q2count = 0;
          //    foreach (int item2 in q2)
          //    {
          //        if (q2count == count)
          //        {
          //            Line line2 = new Line();
          //            line2.stroke = new SolidColorBrush(Colors.Red);
          //            line2.X1 = p.X - 3 - 3 * count;
          //            line2.Y1 = p.Y;
          //            line2.X2 = p.X - 3 - 3 * count;
          //            line2.Y2 = p.Y - item2;
          //            cas.Children.Add(line2);
          //            break;
          //        }
          //        q2count++;
          //    }

          //    count++;
          //}
     
         
       
      
      }

private void button31_Click(object sender,RoutedEventArgs e)
      {
          chushihua(canline5,line51,line52);//先初始化每个line数组

private void button32_Click(object sender,RoutedEventArgs e)//后改变每个line的长度
      {

   Random rd = new Random();
                                chartshujuimg42.Enqueue(rd.Next(0,100));

                                if (chartshujuimg41.Count > 50)
                                {
                                    chartshujuimg41.Dequeue();

                                }
                                if (chartshujuimg42.Count > 50)
                                {
                                    chartshujuimg42.Dequeue();

                                }

  chartline(chartshujuimg41,chartshujuimg42,labchart41,labchart42,line41,line42);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐