31.01 -> 2.02
대신 31.01 -> 1.02 -> 3.02
세트의 예제. 이 경우에만 DateTimeAxis
과 유사한 맞춤 Axis
을 작성하는 것이 유일한 방법입니다. 프로젝트에 첫 번째 복사본 다음 파일에서
:
- C : \ 프로그램 파일 \은 Microsoft SDKs \ 실버 \ 4.0의 \ 툴킷 \ Apr10 \ 소스 \ 소스 code.zip \ Controls.DataVisualization. 툴킷 \의 EnumerableFunctions.cs
- C : \ 프로그램 파일 \은 Microsoft SDKs \ 실버 \ 4.0 \ 툴킷 \ Apr10 \ 소스 \ 소스 code.zip \ Controls.DataVisualization.Toolkit \ ValueHelper.cs
복사 정확히 동일한 네임 스페이스를 가진이 파일들은 내부적이므로 이름이 없습니다 confli ct. 다음, DateTimeIntervalType
에 대한 확장 된 클래스를 추가 :
namespace System.Windows.Controls.DataVisualization.Charting
{
/// <summary>
/// A date time interval.
/// </summary>
public enum ExtendedDateTimeIntervalType
{
/// <summary>
/// Automatically determine interval.
/// </summary>
Auto = 0,
/// <summary>
/// Interval type is milliseconds.
/// </summary>
Milliseconds = 1,
/// <summary>
/// Interval type is seconds.
/// </summary>
Seconds = 2,
/// <summary>
/// Interval type is minutes.
/// </summary>
Minutes = 3,
/// <summary>
/// Interval type is hours.
/// </summary>
Hours = 4,
/// <summary>
/// Interval type is days.
/// </summary>
Days = 5,
/// <summary>
/// Interval type is weeks.
/// </summary>
Weeks = 6,
/// <summary>
/// Interval type is months.
/// </summary>
Months = 7,
/// <summary>
/// Interval type is years.
/// </summary>
Years = 8,
/// <summary>
/// Interval type is odd days
/// </summary>
OddDays = 9
}
}
가 새 구성원 OddDays
작업을하려면, I 클래스 DataTimeRangeAxis
을 변경했습니다. Here is a link on pastebin, SO의 프로그래머는 긴 설명이있는 대답과 같은 사소한 것에 관심을 기울이지 않기 때문에.
SilverlightApplication3
을 원하는대로 변경하십시오 (System.Windows.Controls.DataVisualization.Charting
제외).
또한 많은 함수가 포함되어 있고 추가 파일을 응용 프로그램에 복사하지 않기 때문에 마지막 함수에서 코드에 주석을 달았습니다. 축이이 코드없이 잘 작동합니다. 아마도이 함수는 전혀 사용되지 않습니다.
//The interval type forced by a user, not actual interval type
if (this.IntervalType == ExtendedDateTimeIntervalType.OddDays)
{
DateTime newDate;
if(span != TimeSpan.Zero) //automatically created interval
newDate = date.Add(span);
else newDate = date.AddDays(interval); //else use the interval which is set by a user
//find the nearest odd day
while (newDate.Day % 2 != 1)
newDate = newDate.AddDays(1);
//update span
span = newDate - date;
}
XAML 그렇게 보이는 것 :
이
<charting:Chart.Axes>
<local:DateTimeAxis IntervalType="OddDays" Orientation="X" Interval="1"/>
</charting:Chart.Axes>
당신이 한 대신 Interval="2"
을 설정할 수 있지만 하루 건너 뜁니다
클래스의 가장 중요한 부분은 기능 IncrementDateTime
에 세트 31.01-1.02-3.02
에 있으므로 값 1을 사용하는 것이 더 좋습니다.
툴킷의 차트를 참조하고 있습니까? – AnthonyWJones