Ejemplo n.º 1
0
        /// <summary>
        /// 创建图表
        /// </summary>
        /// <param name="chartEx"></param>
        private static void CreateBarChart(BarChartEx chartEx)
        {
            foreach (var item in chartEx.dataSource)
            {
                System.Reflection.PropertyInfo[] properties = item.GetType().GetProperties(System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public);
                dynamic xValue = 0, yValue = 0;

                xValue = item.GetType().GetProperty(chartEx.XValuePath).GetValue(item);
                yValue = item.GetType().GetProperty(chartEx.YValuePath).GetValue(item);

                var bar = chartEx.GetBar(yValue, xValue);
                bar.Height = chartEx._Content.Height;
                chartEx._Content.Children.Add(bar);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 创建图表
        /// </summary>
        /// <param name="chartEx"></param>
        private static void CreateBarChart(BarChartEx chartEx)
        {
            foreach (var item in chartEx.dataSource)
            {
                dynamic xValue = 0, yValue = 0;

                //通过映射获取数据集中的值
                xValue = item.GetType().GetProperty(chartEx.XValuePath).GetValue(item);
                yValue = item.GetType().GetProperty(chartEx.YValuePath).GetValue(item);

                var bar = chartEx.GetBar(yValue, xValue);
                bar.Height = chartEx._Content.Height;
                chartEx._Content.Children.Add(bar);
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// 计算Y的数据值和条图高像素设置的比例
 /// </summary>
 /// <param name="chartEx"></param>
 private static void Calulate_Data2Height_Value(BarChartEx chartEx)
 {
     if (chartEx.dataSource != null)
     {
         double maxValue = 0;
         //遍历取得数据源中最大的Y值
         foreach (var item in chartEx.dataSource)
         {
             dynamic temp = item.GetType().GetProperty(chartEx.YValuePath).GetValue(item);
             try
             {
                 double flag = temp;
                 maxValue = maxValue > flag ? maxValue : flag;
             }
             catch (Exception)
             {
                 MessageBox.Show("Y数据类型错误");
             }
         }
         //将条图区域的高和Y值的比例作为换算比例
         //50在这用作Y数据Text和X轴数据Text的控件高总和的估值 (暂时没必要精确)
         chartEx._data2BarHeight = int.Parse(((chartEx._Content.ActualHeight - 50) / maxValue).ToString());
     }
 }