作成日: 2020/08/27 最終更新日: 2022/02/22
文書種別
制限事項
詳細
LineSymbolsなどシンボルマーカーを表示するチャート種において、各系列上に実際に表示されるシンボルマーカーの形状は凡例上には反映されません。
凡例の描画においては、各系列の描画色、チャートの形状(矩形もしくは線)、シンボルマーカーの有無、線の太さのみが考慮され、シンボルマーカーの形状やサイズは考慮されません(凡例上では矩形以外のシンボルが円形で描画されます)。
凡例の描画においては、各系列の描画色、チャートの形状(矩形もしくは線)、シンボルマーカーの有無、線の太さのみが考慮され、シンボルマーカーの形状やサイズは考慮されません(凡例上では矩形以外のシンボルが円形で描画されます)。
回避方法
この問題はバージョン2020J v3(4.5.20203.469)で修正されました。
修正版の適用方法については、アップデートの方法を参照してください。
修正版を適用しない場合の回避方法は次の通りです。
Serieクラスを継承した独自のSeriesクラスを作成し、そのGetLegendItemImageSourceメソッドをオーバーライドし、凡例上に描画する図形を画像として返すようにします。
※シンボルマーカーのカスタマイズ方法については、製品ヘルプの下記項目も参照してください。
・カスタムの凡例アイコン
◎サンプルコード(VB)
修正版の適用方法については、アップデートの方法を参照してください。
修正版を適用しない場合の回避方法は次の通りです。
Serieクラスを継承した独自のSeriesクラスを作成し、そのGetLegendItemImageSourceメソッドをオーバーライドし、凡例上に描画する図形を画像として返すようにします。
※シンボルマーカーのカスタマイズ方法については、製品ヘルプの下記項目も参照してください。
・カスタムの凡例アイコン
◎サンプルコード(VB)
Imports C1.Chart
Imports C1.Win.Chart
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'折れ線グラフの作成
Dim series1 As New CustomSeries() With {
.ChartType = C1.Chart.ChartType.LineSymbols,
.Name = "series1",
.SymbolMarker = C1.Chart.SymbolMarker.Diamond,
.SymbolSize = 20,
.Binding = "Y",
.BindingX = "X",
.DataSource = New PointF() {New PointF(1, 1), New PointF(2, 2), New PointF(3, 3)}
}
series1.Style.FillColor = Color.Red
series1.Style.StrokeColor = Color.Red
'チャートの設定
FlexChart1.Series.Clear()
FlexChart1.Series.Add(series1)
End Sub
End Class
'凡例用に独自の画像を設定したシリーズ
Public Class CustomSeries
Inherits Series
Implements ISeries
Shared ReadOnly legendImage As Image = Image.FromFile("../../symbol1.png")
Function GetLegendItemImageSource(index As Integer, ByRef imageSize As _Size) As Object Implements ISeries.GetLegendItemImageSource
'サイズの指定
imageSize.Width = 20
imageSize.Height = 20
'凡例画像の設定
Return legendImage
End Function
End Class
◎サンプルコード(C#)using C1.Chart;
using C1.Win.Chart;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
CustomSeries series1 = new CustomSeries()
{
ChartType = C1.Chart.ChartType.LineSymbols,
Name = "series1",
SymbolMarker = C1.Chart.SymbolMarker.Diamond,
SymbolSize = 20,
Binding = "Y",
BindingX = "X",
DataSource = new PointF[] { new PointF(1, 1), new PointF(2, 2), new PointF(3, 3) }
};
series1.Style.FillColor = Color.Red;
series1.Style.StrokeColor = Color.Red;
// チャートの設定
flexChart1.Series.Clear();
flexChart1.Series.Add(series1);
}
public class CustomSeries : Series, ISeries
{
static Image legendImage = Image.FromFile("../../symbol1.png");
object ISeries.GetLegendItemImageSource(int index, ref C1.Chart._Size imageSize)
{
// サイズの指定
imageSize.Width = 20;
imageSize.Height = 20;
// 凡例画像の設定
return legendImage;
}
}
}
}
旧文書番号
85936