This example shows how to modify the Crosshair Cursor indicator elements' appearance using the ChartControl.CustomDrawCrosshair event.
In this sample, crosshair content is displayed in a legend. For this, set the CrosshairOptions.ContentShowMode property to Legend. Note that you can specify the crosshair's content show mode for a specified indicator using the Indicator.CrosshairContentShowMode property.
Use the CustomDrawCrosshairEventArgs.IndicatorLegendElements property to obtain a collection of indicator elements.
The following properties allow you to modify indicator element appearance:
Property |
Description |
CrosshairIndicatorElement.IndicatorPoint |
Returns information about an indicator point under a crosshair. |
CrosshairLegendElementBase.LineElement |
Returns the crosshair line settings. |
CrosshairLegendElementBase.AxisLabelElement |
Returns the crosshair axis label settings. |
XAML |
<dxc:ChartControl x:Name="chartControl"
CustomDrawCrosshair="chartControl_CustomDrawCrosshair">
<dxc:ChartControl.CrosshairOptions>
<dxc:CrosshairOptions ShowOnlyInFocusedPane="False"
ShowValueLine="True"
ShowValueLabels="True"
ContentShowMode="Legend"/>
</dxc:ChartControl.CrosshairOptions>
<!--...-->
</dxc:ChartControl>
|
C# |
private void chartControl_CustomDrawCrosshair(object sender, CustomDrawCrosshairEventArgs e) {
Brush brush = new SolidColorBrush(Colors.Green);
foreach(CrosshairIndicatorLegendElement indicatorLegendElement in e.IndicatorLegendElements) {
if(indicatorLegendElement.IndicatorPoint.GetNumericValue(IndicatorValueLevel.Value) > 0) {
indicatorLegendElement.LineElement.Brush = brush;
indicatorLegendElement.LineElement.LineStyle.DashStyle = new DashStyle(new double[] {5, 2}, 2);
indicatorLegendElement.AxisLabelElement.Background = brush;
}
}
}
|
VB |
Private Sub chartControl_CustomDrawCrosshair(ByVal sender As Object, ByVal e As CustomDrawCrosshairEventArgs)
Dim brush As Brush = New SolidColorBrush(Colors.Green)
For Each indicatorLegendElement As CrosshairIndicatorLegendElement In e.IndicatorLegendElements
If indicatorLegendElement.IndicatorPoint.GetNumericValue(IndicatorValueLevel.Value) > 0 Then
indicatorLegendElement.LineElement.Brush = brush
indicatorLegendElement.LineElement.LineStyle.DashStyle = New DashStyle(New Double() {5, 2}, 2)
indicatorLegendElement.AxisLabelElement.Background = brush
End If
Next
End Sub
|