找回密码
 立即注册

QQ登录

只需一步,快速开始

smodi

初级会员

14

主题

73

帖子

339

积分

初级会员

积分
339

活字格认证微信认证勋章元老葡萄

smodi
初级会员   /  发表于:2012-10-22 14:27  /   查看:7323  /  回复:5


用的是C1的 silverlight 版本, 想改变 柱的宽度,有没有方法 ?

图例 可不可以拿到 曲线的里面, 现在通过位置的设置,只是 上、下、左、右 。    <c1:C1ChartLegend Position="Right" x:Name="legend"  />

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

5 个回复

倒序浏览
smodi
初级会员   /  发表于:2012-10-22 17:10:00
沙发
没有人 回复吗?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-10-22 19:51:00
板凳
回复 2楼smodi的帖子

你好,请参考以下代码:

  1.         public MainPage()
  2.         {
  3.             InitializeComponent();
  4.             chart.BeginUpdate();

  5.             int cnt = 10;
  6.             double[] vals = new double[cnt];
  7.             DateTime[] times = new DateTime[cnt];

  8.             for( int i=0; i&lt;cnt; i++)
  9.             {
  10.                 times[i] = DateTime.Now.AddMinutes(5 * i);
  11.                 vals[i] =Convert.ToDouble(i * i);
  12.             }

  13.             XYDataSeries ds = new XYDataSeries();
  14.             ds.ValuesSource = vals;
  15.             ds.XValuesSource = times;
  16.             ds.Loaded += ds_Loaded;

  17.             chart.Data.Children.Add(ds);

  18.             chart.View.AxisX.Min = times[0].ToOADate();
  19.             chart.View.AxisX.Max = times[cnt-1].ToOADate();

  20.             chart.View.AxisX.IsTime = true;
  21.             chart.View.AxisX.AnnoFormat = &quot;t&quot;;

  22.             chart.EndUpdate();
  23.         }

  24.         void ds_Loaded(object sender, EventArgs e)
  25.         {
  26.             PlotElement pe = sender as PlotElement;
  27.             if (pe != null &amp;&amp; pe.Shape is Path &amp;&amp; ((Path)pe.Shape).Data is RectangleGeometry)
  28.             {
  29.                 Axis ax = chart.View.AxisX;
  30.                 Axis ay = chart.View.AxisY;
  31.                 double widthMinutes = 2;
  32.         
  33.                 // convert width from minutes to pixels
  34.                 Point p1 = chart.View.PointFromData(
  35.                     new Point(ax.Min , ay.Min));
  36.                 Point p2 = chart.View.PointFromData(
  37.                     new Point(ax.Min + widthMinutes / 60 / 24, ay.Min));
  38.                 double w = (p2.X - p1.X)*20; // in pixels

  39.                 RectangleGeometry rg = ((Path)pe.Shape).Data as RectangleGeometry;
  40.                 double x = rg.Rect.X + 0.5 * rg.Rect.Width;
  41.                 rg.Rect = new Rect( x-0.5*w, rg.Rect.Y, w, rg.Rect.Height);
  42.             }
  43.         }
复制代码
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-10-23 16:57:00
地板
回复 1楼smodi的帖子

你也可以使用:BarColumnOptions.SetStackGroup(ds, int );去设置柱状图宽度
回复 使用道具 举报
smodi
初级会员   /  发表于:2012-10-27 10:34:00
5#
谢谢, 问题已解决。 最近没有上论坛。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-10-29 14:03:00
6#
回复 5楼smodi的帖子

客气
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部