2012-03-07 10 views
2

.NET 4.0の組み込みコントロールを使用してStackedColumnチャートを作成しました。 グラフが正しく出力されています。 私はそれを3-Dに見せたいと思っています。 XAMLを使用してこれを行うことができます。しかし、私はコードを使って同じことをすることができません。StackedColumnチャートのコードビハインドで "ChartArea"の "Enable3D"プロパティを設定

私のコードをご覧ください。私はChartとChartAreaを持っています。私は次のように3-Dを使用可能にするためのコードであることを見た:

Chart1.ChartAreas["Default"].Area3DStyle.Enable3D = true; 

しかし、次のように、私は、実行時にエラーが発生します: インデックスが範囲外でした。負でなく、コレクションのサイズより小さくなければなりません。 パラメータ名:インデックス

私も(CAREAがのChartAreaのインスタンスである)次のオプションを使用してみました:

cArea.Area3DStyle.Enable3D = true; 

Chart1.ChartAreas["ChartArea1"].Area3DStyle.Enable3D = true; 

Chart1.ChartAreas[0].Area3DStyle.Enable3D = true; 

は、私はこれらのプロパティを設定する場所の違いがあります。 Chart1要素を追加する前に、上記の3つのステートメントをすべて試しました。

私が使用しての背後にあるコードは次のとおりです。

 Chart1.Series.Clear(); 
     Chart1.ChartAreas.Clear(); 

     ChartArea cArea = new ChartArea("Default"); 
     Chart1.ChartAreas.Add(cArea); 

     // ABLE TO USE cArea to change properties.... !!! 
     cArea.AxisX.LabelStyle.Angle = +80; 
     cArea.AxisX.LabelStyle.Interval = 1; 
     cArea.BackColor = Color.Beige; 



     foreach (var g in groups) 
     { 
      Series s1 = new Series(g.Key); 
      Chart1.Series.Add(s1); 

      s1.ChartType = SeriesChartType.StackedColumn; 
      s1["PointWidth"] = "0.7"; 
      foreach (var m in g) 
      { 
       s1.Points.AddXY(m.Category, m.Count); 
      } 
      s1.IsValueShownAsLabel = true; 
      s1.ToolTip = "#VALY"; 
     } 


     this.Controls.Add(Chart1); 

XAMLは次のとおりです。に示すように

<asp:Chart ID="Chart1" runat="server" ImageLocation="~/FolderLoc/Chart_#SEQ(1000,0)"  ImageStorageMode="UseImageLocation" ImageType="Png" > 
</asp:Chart> 

が、私はしかし、私のチャートの一部として他のプロパティを変更するにはCAREAを使用することができていますコード:

静的データを使用する場合、XAMLを「TRUE」に設定することができます。

<chartareas> 
     <asp:ChartArea Name="Default"> 
      <Area3DStyle Enable3D="True" /> 
     </asp:ChartArea> 
    </chartareas> 

チャート3-Dを有効にする方法を教えてください。しようとする

答えて

3

2つのこと:

Chart1.ChartAreas["ChartArea1"].Area3DStyle.Enable3D = true; 

Chart1.ChartAreas[0].Area3DStyle.Enable3D = true; 
+0

ご返信ありがとうございます。私はすでにこれらを試しました。それは動作していません。私はまだ同じ "インデックスエラー"を得る – Nandu

+0

エラーは、その行から来ていないか、あなたは本当にあなたのチャートを台無しにしています。フォームにチャートをドロップして何もしないと、この行を実行できます:chart1.ChartAreas [0] .Area3DStyle.Enable3D = true; –

+0

うん!それは私が移入しようとしているデータと関係があるように見えます。ダミーデータを使ってレンダリングしようとしているデータを変更したとき、それは機能しました。私がレンダリングしているデータには、空のスタッキングチャートの一部があります.---カテゴリの中には常にバグの数がゼロであるとは限りません。私はそれが問題を引き起こしていると思います。データがなくても(つまり、カテゴリ=ゼロのCRITICALバグ)、このケースをどのように処理するのかを確認するにはどうすればよいですか? – Nandu

0

あなたはX軸に空のデータを持っています。これを修正するには、AlignDataPointsByAxisを使用します。

関連する問題