태그 보관물: Chart FX

ChartFX 배경색 변경, 테두리 제거

이번에는 ChartFX 배경색 변경 하여 단색으로 하고 테두리를 없애보도록 하겠습니다.

사용된 Data는 다음과 같습니다.

차트 데이터

차트 데이터

Chart 객체의 DataSource 속성에 DataTable을 지정하고 Binding 하면 다음과 같은 차트가 나타납니다.

기본 스타일 차트

기본 스타일 차트

이 상태만으로도 상당히 깔끔하면서 훌륭합니다. 하지만 고객사의 기호에 따라 변경을 요청하는 경우가 있었습니다. 저의 경우에는 배경색상을 없애고 테두리도 없애달라는 요청이었습니다.

테두리는 웹디자인 상에 이미 반영이 되었던 상태라서 테두리가 나타나면 두번 나타나게 되어 차트 자체의 테두리는 나타나지 않도록 하였습니다.

소스는 다음과 같습니다.

var chart = String.Empty;
var swChart = new StringWriter();
var hwChart = new HtmlTextWriter(swChart);

var crtChart = new Chart
{
Width = 560,
Height = 300,
Gallery = Gallery.Lines,
RenderFormat = "Image"
};

crtChart.DataSourceSettings.Style = DataSourceStyles.Transpose;
crtChart.DataSource = datasource;
crtChart.DataBind();

crtChart.RenderControl(hwChart);
chart = swChart.ToString();

litChart.Text = chart;

차트의 배경을 단색으로 변경하고 테두리를 없애려면 다음과 같이 변경합니다.

SolidBackground solidBackground = new SolidBackground();
solidBackground.Color = System.Drawing.Color.White;

 var chart = String.Empty;
 var swChart = new StringWriter();
 var hwChart = new HtmlTextWriter(swChart);

 var crtChart = new Chart
 {
 Width = 560,
 Height = 300,
 Gallery = Gallery.Lines,
 RenderFormat = "Image",
 Background = solidBackground,
 Border = new ChartFX.WebForms.Adornments.ImageBorder(ImageBorderType.Rounded)
 };

 crtChart.DataSourceSettings.Style = DataSourceStyles.Transpose;
 crtChart.Border.Color = Color.Transparent;
 crtChart.DataSource = datasource;
 crtChart.DataBind();

 crtChart.RenderControl(hwChart);
 chart = swChart.ToString();

 litChart.Text = chart;

실제 출력한 결과는 다음과 같습니다.

배경색 변경 및 테두리 제거

배경색 변경 및 테두리 제거

배경 색상은 차트의 속성에 바로 색상을 지정하는 형태가 아니라 SolidBackground 객체를 생성한 후 이 객체에 속성 값을 변경하고 차트 객체에 지정하는 방식으로 하셔야 합니다.

그리고 테두리를 없애는 것은 색상을 투명으로 지정하면 됩니다.

ChartFX 소개

ChartFX 소개

프로젝트를 진행하다 보면 고객사의 요청에 따라 여러가지 차트를 출력하여야 하는 경우가 있습니다.

.NET에서 제공해 주는 차트도 좋은 기능을 제공하지만 저의 경우에는 고객사의 요청이나 다른 이유 때문에 ChartFX 를 많이 사용하게 되었습니다.

ChartFX는 상당히 오래전부터 사용이 되어 왔습니다. 제공하는 기능이 상당히 강력하고 차트내의 거의 모든 요소를 제어할 수 있습니다. 여러가지 장점이 있지만 개인적으로는 직관적이지 못한 사용방법이 아쉬웠습니다.

처음에는 Trial 버전을 받아서 설치하고 작업한 후 프로젝트가 완료되면 그때 구매를 진행하시면 됩니다. 30일 정도 사용해 볼 수 있는데 그 이후에는 License Manager 에서 Trial 연장을 통하여 기간을 더 늘릴 수 있습니다. 실제 프로젝트를 진행하다 보면 Trial 연장을 많이 하게 됩니다.

어떤 기능을 구현할 때 막히는 부분이 있으면 당연한 이야기 이지만 먼저 설치된 Samples & Resource Center에서 검색을 해 보면 많은 도움이 됩니다. 가끔 설명이 너무 부족하거나 한줄짜리 예제에 힘이 빠지는 경우도 있습니다.

ChartFX Samples & Resource

ChartFX Samples & Resource Center

원하시는 답을 찾지 못하셨다면 SoftwareFX 사이트의 Community 사이트(http://community.softwarefx.com/)에서 검색을 해 보면 찾을 수도 있습니다. 검색 엔진에서 검색을 해 보아도 딱 맞는 해결책을 찾지 못하는 경우가 많았습니다. 제 경험으로는 Community 사이트에서 검색을 해 보는 것이 그나마 가장 원하는 답을 가장 많이 얻을 수 있었습니다.

다양한 예제도 제공을 하는데 구현하려고 하시는 기능과 꼭 연관된 것이 아니라고 하여도 간단하니 살펴보시면 많은 도움이 됩니다. 저의 경우에는 막대 그래프를 클릭하면 다른 차트에 꺽은선 그래프를 출력하여야 하는 요구사항이 있었는데 예제를 보고 응용해서 구현하였던 적이 있습니다.

차트의 속성을 다양하게 변경할 수 있지만 처음에 제공하는 기본값 만으로도 대다수의 고객사에게 만족을 주었습니다. 처음에 기본값으로 출력된 차트를 보여주고 변경 요청이 있는 경우 속성을 추가하거나 변경하여 차트의 모양을 바꾸는 것이 가장 좋은 방법이 아닐까 합니다.

ChartFX를 사용한 프로젝트를 진행하면서 만나게 되었던 여러가지 상황과 그 해결 방법에 대해 정리하여 올리도록 하겠습니다.