2011-08-06 5 views
2

사용자가 일부 설정을 변경하여 수정할 수있는 Silverlight 차트 (Windows Phone 7)를 사용하려고합니다. 차트 축을 지우고 새로운 축을 재 부가시코드로 Silverlight Charting 툴킷 축을 지울 수 없습니다.

, 내가 두 축이 chart.ActualAxes.Count에 의해보고되는 것을 끝낼

는 사람이 어떻게 완전히 분명히 알고 있고 실버의 모든 축이 삭제 차트를 만들고 새로운 것을 추가 하시겠습니까? 추가 한 후에 ActualAxes 목록을 업데이트하기 위해 무언가를 호출하려고 했습니까?

chart.Axes.Clear(); 

chart.Axes.Add(new LinearAxis() 
{ 
    Orientation = AxisOrientation.Y, 
    Location = AxisLocation.Left, 
    Minimum = 0 
}); 
chart.Axes.Add(new DateTimeAxis() 
{ 
    Orientation = AxisOrientation.X, 
    Location = AxisLocation.Bottom, 
    IntervalType = DateTimeIntervalType.Days 
}); 

답변

2

Axes 수집이 그 것이다 차트에서 persistentAxes을 나타내는 차트 :

코드 샘플 (이 두 번 전화 차트 대신 두의 4 개 축으로 종료됩니다) 사전에

감사 차트에 시리즈가없는 경우에도 렌더링됩니다. ActualAxes은 지속적 축과 차트의 시리즈에서 사용중인 축의 조합을 나타냅니다.

때 지우기 당신은 여전히 ​​2도 Axes하지만 지금 ActualAxes (SeriesHostAxesCollection의 인스턴스)이 사용중인 축의 제거를 허용하지 않습니다 수 기존 시리즈 0 말합니다 찾을 수집 및 테스트 ActualAxes.Count . 따라서 ActualAxes 컬렉션은 원본을 보유합니다. 그런 다음 이렇게 사람들이 새도 ActualAxes에 추가 영구 Axes 컬렉션이 다른 사람을 추가, 당신은 다시 한번 (세 번째) 코드를 실행 4.

와 끝까지 당신은 ActualAxes 카운트 유적을 볼 수 4. 두 번째 호출에서 추가 한 2 축은 어떤 시리즈에서도 사용되지 않으므로 ActualAxes 컬렉션에서 제거 할 수 있습니다.

+0

이 대단한 일을해야하지만, 내가 다른 종류의 축 장착 할 수 있도록하는 방법은 내가 차트에서 분리합니까? (나는 그것이 자동으로 런타임에 할당되었다고 가정하므로) – Doug

+1

@Doug : 내 질문은 왜 당신이 Axes를 대체하는 것입니까? 왜 기존 Axes의 속성을 수정하지 않는 것이 좋을까요? – AnthonyWJones

+0

나는 CategoryAxis와 DateTimeAxis 사이를 전환하여 유형을 변경하려고하기 때문에 – Doug

1

다음 코드는

var xAxis = chart_name.ActualAxes.OfType<LinearAxis>().FirstOrDefault(ax => ax.Orientation == AxisOrientation.X); 
if (xAxis != null) 
{ 
    xAxis.Title = "The Title"; 
} 
관련 문제