|
<chart:SfChart x:Name="chart" >
…
<chart:SfChart.Behaviors>
<chart:ChartCrossHairBehavior >
<chart:ChartCrossHairBehavior.HorizontalLineStyle>
<Style TargetType="Line">
<Setter Property="StrokeThickness" Value="0"/>
</Style>
</chart:ChartCrossHairBehavior.HorizontalLineStyle>
</chart:ChartCrossHairBehavior>
</chart:SfChart.Behaviors>
</chart:SfChart>
|
|
private void chart1_Loaded(object sender, RoutedEventArgs e)
{
double y2Pos = 0;
foreach (CartesianSeries series in chart1.Series)
{
if (series.YAxis != null)
y2Pos += series.YAxis.VisibleRange.End;
}
if (chart1.SecondaryAxis != null)
y2Pos += chart1.SecondaryAxis.VisibleRange.End;
(chart1.Annotations[0] as VerticalLineAnnotation).Y2 = y2Pos;
(chart1.Annotations[1] as VerticalLineAnnotation).Y2 = y2Pos;
} |
|
With MinuteMarker1
.StrokeThickness = 4
.Stroke = New SolidColorBrush(Colors.Red)
.CoordinateUnit = CoordinateUnit.Pixel
End With
MinuteChart.Annotations.Add(MinuteMarker1)
With MinuteMarker2
.StrokeThickness = 4
.Stroke = New SolidColorBrush(Colors.Red)
.CoordinateUnit = CoordinateUnit.Pixel
End With
MinuteChart.Annotations.Add(MinuteMarker2)
...
Private Sub rbSingle_Checked(sender As Object, e As RoutedEventArgs) Handles rbSingle.Checked
MinuteMarker1.Y1 = Nothing
MinuteMarker2.Y1 = Nothing
MinuteMarker1.Y2 = MinutePriceYaxis.ArrangeRect.Bottom
MinuteMarker2.Y2 = MinutePriceYaxis.ArrangeRect.Bottom
End Sub
Private Sub rbMultiple_Checked(sender As Object, e As RoutedEventArgs) Handles rbMultiple.Checked
MinuteMarker1.Y1 = Nothing
MinuteMarker2.Y1 = Nothing
MinuteMarker1.Y2 = MinuteChart.SeriesClipRect.Bottom
MinuteMarker2.Y2 = MinuteChart.SeriesClipRect.Bottom
End Sub |