2015-11-03 140 views
0

我有一个十字线的线图,我想知道是否有可能的Y轴十字线(水平)只能沿线图的最大值移动。如果我的描述没有清除我的问题,希望这些图像会有所帮助?Y轴在线图上的最大值

图像1 enter image description here 图像2 enter image description here

我想知道是否有可能具有此显示为目前我需要从40移动鼠标到点到60来实现这样看,是否有可能得到这个结果而不必自己调整十字线?

的XAML

<Grid> 
    <Grid.DataContext> 
     <local:ViewModel/> 
    </Grid.DataContext> 

    <syncfusion:SfChart Margin="10"> 

     <syncfusion:SfChart.PrimaryAxis> 
      <syncfusion:CategoryAxis /> 
     </syncfusion:SfChart.PrimaryAxis> 

     <syncfusion:SfChart.SecondaryAxis> 
      <syncfusion:NumericalAxis Maximum="80" Minimum="0"/> 
     </syncfusion:SfChart.SecondaryAxis> 

     <syncfusion:SfChart.Behaviors> 
      <local:CustomCrossHairBehavior /> 
     </syncfusion:SfChart.Behaviors> 

     <syncfusion:LineSeries x:Name="series" 
           ItemsSource="{Binding DataPoint}" 
           XBindingPath="XData" 
           YBindingPath="YData"/>   
    </syncfusion:SfChart> 
</Grid> 

编辑C#

public class Model 
{ 
    public string XData 
    { 
     get; 
     set; 
    } 
    public double YData 
    { 
     get; 
     set; 
    } 

} 

public class ViewModel 
{ 
    public ObservableCollection<Model> DataPoint 
    { 
     get; 
     set; 
    } 
    public ViewModel() 
    { 
     this.DataPoint = new ObservableCollection<Model>(); 
     var date = new DateTime(2000, 1, 1); 
     DataPoint.Add(new Model { XData = "Jan", YData = 40}); 
     DataPoint.Add(new Model { XData = "Feb", YData = 60}); 
     DataPoint.Add(new Model { XData = "Mar", YData = 30}); 
     DataPoint.Add(new Model { XData = "Apr", YData = 20}); 
     DataPoint.Add(new Model { XData = "May", YData = 60}); 
     DataPoint.Add(new Model { XData = "June", YData = 50}); 
     DataPoint.Add(new Model { XData = "July", YData = 10}); 
     DataPoint.Add(new Model { XData = "August", YData = 40}); 

    } 
} 
public class CustomCrossHairBehavior:ChartTrackBallBehavior 
{ 
    public Line newline; 
    public CustomCrossHairBehavior() 
    { 
     newline = new Line(); 
     Binding binding = new Binding(); 
     binding.Path = new PropertyPath("LineStyle"); 
     binding.Source = this; 
     newline.SetBinding(Line.StyleProperty, binding); 
    } 
    protected override void OnMouseMove(MouseEventArgs e) 
    { 
     var element = e.Source as SfChart; 
     var positon = e.GetPosition(this.AdorningCanvas); 
     newline.X1 = ChartArea.SeriesClipRect.Left; 
     newline.Y1 = positon.Y; 
     newline.Y2 = positon.Y; 
     newline.X2 = ChartArea.SeriesClipRect.Width + ChartArea.SeriesClipRect.Left; 
     AddElement(newline); 
     base.OnMouseMove(e); 
    } 
} 
+0

我相信你可以将水平设置为最大Y轴值。 – htm11h

+0

你在哪里设定了这个?只是我刚刚开始了解所有这些 –

+0

你在哪里管理数据,你在C#或Vb的页面后面有代码吗? – htm11h

回答