2014-07-25 2 views
1

안녕하세요. 현재 Chart를 만들고 img로 보았습니다. 하지만 좀 더 대화식으로 만들고 싶습니다. 예를 들면. 사용자가 Mose Over Point를 입력하면 (포인트 차트에서)이 점의 값을 볼 수 있습니다. 내가 그것을 대화하기 위해 추가 할 수있는 특별한 속성은 다음MS Chart Control이 포함 된 대화 형 차트 VB

은 내가 차트

Function GenerateChart(id As Integer, width As Integer, height As Integer) As ActionResult 

    ' Creating chart 
    Dim chart = New Chart() 
    Dim area = New ChartArea() 
    Dim series = New Series() 

    chart.Width = width 
    chart.Height = height 

    ' Adding Series to the Chart 
    chart.Series.Add("ValueSeries") 
    chart.Series("ValueSeries").XValueMember = "Date" 
    chart.Series("ValueSeries").YValueMembers = "Value" 
    chart.Series("ValueSeries").ChartType = SeriesChartType.Point 
    'chart.Series("ValueSeries1").AxisLabel = "Label" 

    ' Getting data for series 
    chart.DataSource = GetDataForChart(id) 
    chart.DataBind() 

    chart.ChartAreas.Add(New ChartArea()) 

    ' Saving chart as file 
    Dim returnVal = New MemoryStream() 
    chart.SaveImage(returnVal) 

    'Return adress for file 
    Return File(returnVal.GetBuffer(), "image/png") 
End Function 

의 생성 및 이미지가 있습니까? 그리고 어쩌면을 추가하면 나는 도구 팁에 대해 읽고 1

편집 \? 이미지보다 더 diffrant 뭔가를 반환해야합니다 ....하지만 당신은 각 시리즈의 값을 각각의 도구 설명을 설정해야합니다 아직도 내가 차트를 img로 저장할 때 도구 설명이 작동하는지는 모르지만 시도해 보겠습니다.

+0

이것은 하이 차트와 관련이 없습니다. – wergeld

+0

왜 이미지를 만드나요? 왜 차트 자체를 표시하지 않는 것이 좋을까요? – mmathis

+0

오케이 그래서 차트를 반환하는 함수와이 차트를 표시하는 방법을 만드시겠습니까? html.action? 오,이 MVC 기반 애플 리케이션을 추가하는 것을 잊어 버렸습니다 –

답변

2

Chart.HitTest 메서드를 MouseMove 이벤트와 함께 사용하여 마우스가 데이터 포인트 위에 있는지 확인할 수 있습니다. 여기서 예

Public Class Form1 
    Dim ToolTipProvider As New ToolTip 

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
     For i = 1 To 20 
      Chart1.Series(0).Points.AddXY(i, i^2) 
     Next 
    End Sub 

    Private Sub Chart1_MouseMove(sender As Object, e As MouseEventArgs) Handles Chart1.MouseMove 
     Dim h As Windows.Forms.DataVisualization.Charting.HitTestResult = Chart1.HitTest(e.X, e.Y) 
     If h.ChartElementType = DataVisualization.Charting.ChartElementType.DataPoint Then 
      ToolTipProvider.SetToolTip(Chart1, h.Series.Points(h.PointIndex).XValue & " x " & h.Series.Points(h.PointIndex).YValues(0)) 
     End If 
    End Sub 
End Class 

그것은 먼저 그러나 hitTest를 수행하고 가변 h 결과에 할당된다. HitTestResult의 ChartElementType 속성은 지정된 좌표에있는 요소 유형을 정의합니다. 그래프가 데이터 포인트 인 경우, 좌표를 가지는 대응하는 툴 힌트가 그래프에 할당 할 수 있습니다. 임시 이미지에서 할 경우

enter image description here

당신은 당신의 방법에 그러나 hitTest을 수행하고 이미지에 툴팁을 그릴 필요가있다. 왜 이런 식으로하는지 모르겠지만 대화 형 이미지를 쉽게 만들 수는 없습니다.

+0

괜찮아 그래서 지금 당신이 나를 도울 수 있다면 - 차트 값을 반환하는 함수를 변경합니다, 나중에 면도기와 함께보기에 표시하는 방법? html.render 또는 비슷한 무엇입니까? –

+0

@JakubWisniewski 나는 당신이 무슨 뜻인지 전혀 모르겠다. 주제에 대한 새로운 질문을 열고 사용중인 플랫폼과 달성하려는 내용을 자세히 설명하십시오. 여기에있는 질문은 일부 웹 응용 프로그램에서 차트를 표시하는 것과 관련이 없습니다. – Jens

+0

불편을 끼쳐 드려 죄송합니다. 답장을 보내 주셔서 감사합니다. –