2012-12-21 40 views
5

Tôi đang tạo biểu đồ đường .NET trong C# với khoảng thời gian X-quang trong tuần. Đối với dự án của tôi, tôi chỉ muốn sử dụng nhãn tùy chỉnh, nhưng bây giờ tôi vẫn muốn các đường lưới. Có ai biết cách ẩn nhãn X-Axis mặc định trong khi vẫn giữ nhãn tùy chỉnh không?Chỉ sử dụng nhãn tùy chỉnh ở trục X trong biểu đồ .NET

Tôi cố gắng này:

Chart4.ChartAreas[0].AxisX.LabelStyle.Enabled = false; 

Kết quả rõ ràng là không có dấu hiệu áp dụng, mà không phải là những gì tôi đã cố gắng làm.

EDIT: Mã để tạo ra các hàng ban đầu là thế này:

Chart4.ChartAreas["ChartArea1"].AxisX.LabelStyle.Format = "M"; 

Và mã cho nhãn tùy chỉnh được điều này:

int month = XValues[0].Month; 
var XAxis = Chart4.ChartAreas[0].AxisX; 

DateTime StartMonthPos = XValues[0]; 
DateTime EndPos = new DateTime(); 

foreach (DateTime Date in XValues) 
{ 
    EndPos = Date; 

    if (Date.Month != month) 
    { 
     Chart4.ChartAreas[0].AxisX.CustomLabels.Add(StartMonthPos.ToOADate(), EndPos.ToOADate(), StartMonthPos.ToString("MMMM"), 1, LabelMarkStyle.None); 
     StartMonthPos = Date; 
    } 

    month = Date.Month; 
} 

XAxis.CustomLabels.Add(StartMonthPos.ToOADate(), EndPos.ToOADate(), StartMonthPos.ToString("MMMM"), 1, LabelMarkStyle.None); 

Biểu đồ trông như thế này: Chart with dates

Và nó sẽ giống như sau: chart without dates

+0

Bạn có thể muốn xem xét các biểu đồ cột – Jerome

Trả lời

5

Được rồi, tôi đã xem xét Label điều khiển trên MSDN. Để làm cho nhãn tùy chỉnh xuất hiện thay cho nhãn bình thường, tôi đặt thông số RowIndex thành 0, thay thế hàng nhãn mặc định. Mã cuối cùng cho các hàng tùy chỉnh trông giống như sau:

int month = XValues[0].Month; 
    var XAxis = Chart4.ChartAreas[0].AxisX; 

    DateTime StartMonthPos = XValues[0]; 
    DateTime EndPos = new DateTime(); 

    foreach (DateTime Date in XValues) 
    { 
     EndPos = Date; 

     if (Date.Month != month) 
     { 
      Chart4.ChartAreas[0].AxisX.CustomLabels.Add(StartMonthPos.ToOADate(), 
       EndPos.ToOADate(), StartMonthPos.ToString("MMMM"), 0, LabelMarkStyle.None); 
      StartMonthPos = Date; 
     } 

     month = Date.Month; 
    } 

    XAxis.CustomLabels.Add(StartMonthPos.ToOADate(), EndPos.ToOADate(), 
      StartMonthPos.ToString("MMMM"), 0, LabelMarkStyle.None); 
Các vấn đề liên quan