# Crosshair Cursor | WPF Controls | DevExpress Documentation

The crosshair cursor allows users to track [series point](/WPF/6339/controls-and-libraries/charts-suite/chart-control/series/series) or [indicator point](/WPF/115226/controls-and-libraries/charts-suite/chart-control/series/indicators) coordinates on the chart, and helps users to compare different graphs.

![Crosshair cursor](/WPF/images/chart-control/crosshair-intro.gif)

[Run Demo: Tooltip and Crosshair Cursor](dxdemo://Wpf/DXCharts/MainDemo/TooltipAndCrosshairCursorDemo)

The crosshair cursor comprises two intersecting horizontal and vertical lines (**value line** and **argument line**) with the corresponding axis labels at the end of the lines. The crosshair also contains a label (**crosshair label**) that is positioned on the line intersection. This label shows the argument and values for highlighted points. Initially the crosshair cursor displays only its argument line with the crosshair label.
See the following section on how to display or hide crosshair elements: Display and Hide Crosshair Elements. 

![Crosshair cursor elements](/WPF/images/chart-control/crosshair-elements.png)

## Enable or Disable Crosshair

The crosshair cursor is enabled initially. If you want to disable the crosshair at the chart level, set the chart’s [CrosshairEnabled](/WPF/DevExpress.Xpf.Charts.ChartControlBase.CrosshairEnabled) property to **False**. However, you can still enable crosshair for specific series or indicators. To do this, enable the [XYSeries2D.CrosshairEnabled](/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairEnabled) or [Indicator.CrosshairEnabled](/WPF/DevExpress.Xpf.Charts.Indicator.CrosshairEnabled) property.

The following markup enables the crosshair cursor only for the second series:

- XAML

<section id="tabpanel_Txi4tMePEQ_tabid-xaml" role="tabpanel" data-tab="tabid-xaml">
<pre><code data-code-links="{&quot;/ChartControl[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControlBase.CrosshairEnabled&quot;,&quot;/LineSeries2D[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairEnabled&quot;,&quot;SnapMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.SnapMode&quot;,&quot;ShowOutOfRangePoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOutOfRangePoints&quot;,&quot;ShowCrosshairLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowCrosshairLabels&quot;,&quot;ShowValueLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowValueLabels&quot;,&quot;ShowValueLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowValueLine&quot;,&quot;ShowArgumentLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLabels&quot;,&quot;ShowArgumentLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLine&quot;,&quot;HighlightPoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.HighlightPoints&quot;,&quot;/StockSeries2D[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairLabelPattern&quot;,&quot;/RateOfChange[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Indicator.CrosshairLabelPattern&quot;,&quot;GroupHeaderPattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.GroupHeaderPattern&quot;,&quot;Pattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairAxisLabelOptions.Pattern&quot;,&quot;CrosshairMousePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairMousePosition&quot;,&quot;Offset&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairLabelPosition.Offset&quot;,&quot;CrosshairFreePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition&quot;,&quot;DockCorner&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockCorner&quot;,&quot;DockTarget&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockTarget&quot;,&quot;ContentShowMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ContentShowMode&quot;,&quot;MaxCrosshairContentWidth&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentWidth&quot;,&quot;MaxCrosshairContentHeight&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentHeight&quot;,&quot;CrosshairLabelMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.CrosshairLabelMode&quot;,&quot;ShowOnlyInFocusedPane&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOnlyInFocusedPane&quot;,&quot;LinesMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.LinesMode&quot;,&quot;ArgumentLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineBrush&quot;,&quot;ValueLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineBrush&quot;,&quot;ArgumentLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineStyle&quot;,&quot;ValueLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineStyle&quot;,&quot;PopupTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.PopupTemplate&quot;,&quot;LegendMarkerTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Series.LegendMarkerTemplate&quot;,&quot;CrosshairLabelTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Axis2D.CrosshairLabelTemplate&quot;,&quot;CustomDrawCrosshair&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControl.CustomDrawCrosshair&quot;,&quot;CustomDrawCrosshairEventArgs&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs&quot;,&quot;CrosshairLineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairLineElement&quot;,&quot;CrosshairAxisLabelElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairAxisLabelElements&quot;,&quot;CrosshairElementGroups&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairElementGroups&quot;,&quot;CrosshairElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementGroup.CrosshairElements&quot;,&quot;LabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LabelElement&quot;,&quot;SeriesPoint&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElement.SeriesPoint&quot;,&quot;AxisLabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.AxisLabelElement&quot;,&quot;LineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LineElement&quot;}" class="lang-xaml">&lt;dxc:ChartControl CrosshairEnabled=&quot;False&quot; &gt;
    &lt;dxc:XYDiagram2D&gt;
        &lt;dxc:LineSeries2D x:Name=&quot;series1&quot;/&gt;
        &lt;dxc:LineSeries2D x:Name=&quot;series2&quot; CrosshairEnabled=&quot;True&quot;/&gt;
    &lt;/dxc:XYDiagram2D&gt;
&lt;/dxc:ChartControl&gt;
</code></pre></section>

## Show Crosshair Programmatically

Call the [XYDiagram2D.ShowCrosshair](/WPF/DevExpress.Xpf.Charts.XYDiagram2D.ShowCrosshair.overloads) method to show the crosshair cursor. For example, the following code demonstrates how to show the crosshair programmatically on a chart’s **Mouse.MouseUp** event.

- MainWindow.xaml.cs
- MainWindow.xaml.vb

<section id="tabpanel_Txi4tMePEQ-1_tabid-csharpMainWindow-xaml-cs" role="tabpanel" data-tab="tabid-csharpMainWindow-xaml-cs">
<pre><code data-code-links="{&quot;/ChartControl[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControlBase.CrosshairEnabled&quot;,&quot;/LineSeries2D[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairEnabled&quot;,&quot;SnapMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.SnapMode&quot;,&quot;ShowOutOfRangePoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOutOfRangePoints&quot;,&quot;ShowCrosshairLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowCrosshairLabels&quot;,&quot;ShowValueLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowValueLabels&quot;,&quot;ShowValueLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowValueLine&quot;,&quot;ShowArgumentLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLabels&quot;,&quot;ShowArgumentLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLine&quot;,&quot;HighlightPoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.HighlightPoints&quot;,&quot;/StockSeries2D[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairLabelPattern&quot;,&quot;/RateOfChange[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Indicator.CrosshairLabelPattern&quot;,&quot;GroupHeaderPattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.GroupHeaderPattern&quot;,&quot;Pattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairAxisLabelOptions.Pattern&quot;,&quot;CrosshairMousePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairMousePosition&quot;,&quot;Offset&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairLabelPosition.Offset&quot;,&quot;CrosshairFreePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition&quot;,&quot;DockCorner&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockCorner&quot;,&quot;DockTarget&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockTarget&quot;,&quot;ContentShowMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ContentShowMode&quot;,&quot;MaxCrosshairContentWidth&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentWidth&quot;,&quot;MaxCrosshairContentHeight&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentHeight&quot;,&quot;CrosshairLabelMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.CrosshairLabelMode&quot;,&quot;ShowOnlyInFocusedPane&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOnlyInFocusedPane&quot;,&quot;LinesMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.LinesMode&quot;,&quot;ArgumentLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineBrush&quot;,&quot;ValueLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineBrush&quot;,&quot;ArgumentLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineStyle&quot;,&quot;ValueLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineStyle&quot;,&quot;PopupTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.PopupTemplate&quot;,&quot;LegendMarkerTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Series.LegendMarkerTemplate&quot;,&quot;CrosshairLabelTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Axis2D.CrosshairLabelTemplate&quot;,&quot;CustomDrawCrosshair&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControl.CustomDrawCrosshair&quot;,&quot;CustomDrawCrosshairEventArgs&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs&quot;,&quot;CrosshairLineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairLineElement&quot;,&quot;CrosshairAxisLabelElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairAxisLabelElements&quot;,&quot;CrosshairElementGroups&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairElementGroups&quot;,&quot;CrosshairElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementGroup.CrosshairElements&quot;,&quot;LabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LabelElement&quot;,&quot;SeriesPoint&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElement.SeriesPoint&quot;,&quot;AxisLabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.AxisLabelElement&quot;,&quot;LineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LineElement&quot;}" class="lang-csharp">private void OnChartControlMouseUp(object sender, MouseButtonEventArgs e) {
    XYDiagram2D xyDiagram = chartControl.Diagram as XYDiagram2D;
    if (xyDiagram == null) return;

    xyDiagram.ShowCrosshair(e.GetPosition(chartControl));
}
</code></pre></section>
<section id="tabpanel_Txi4tMePEQ-1_tabid-vbMainWindow-xaml-vb" role="tabpanel" data-tab="tabid-vbMainWindow-xaml-vb" aria-hidden="true" hidden="hidden">
<pre><code data-code-links="{&quot;/ChartControl[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControlBase.CrosshairEnabled&quot;,&quot;/LineSeries2D[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairEnabled&quot;,&quot;SnapMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.SnapMode&quot;,&quot;ShowOutOfRangePoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOutOfRangePoints&quot;,&quot;ShowCrosshairLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowCrosshairLabels&quot;,&quot;ShowValueLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowValueLabels&quot;,&quot;ShowValueLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowValueLine&quot;,&quot;ShowArgumentLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLabels&quot;,&quot;ShowArgumentLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLine&quot;,&quot;HighlightPoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.HighlightPoints&quot;,&quot;/StockSeries2D[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairLabelPattern&quot;,&quot;/RateOfChange[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Indicator.CrosshairLabelPattern&quot;,&quot;GroupHeaderPattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.GroupHeaderPattern&quot;,&quot;Pattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairAxisLabelOptions.Pattern&quot;,&quot;CrosshairMousePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairMousePosition&quot;,&quot;Offset&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairLabelPosition.Offset&quot;,&quot;CrosshairFreePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition&quot;,&quot;DockCorner&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockCorner&quot;,&quot;DockTarget&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockTarget&quot;,&quot;ContentShowMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ContentShowMode&quot;,&quot;MaxCrosshairContentWidth&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentWidth&quot;,&quot;MaxCrosshairContentHeight&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentHeight&quot;,&quot;CrosshairLabelMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.CrosshairLabelMode&quot;,&quot;ShowOnlyInFocusedPane&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOnlyInFocusedPane&quot;,&quot;LinesMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.LinesMode&quot;,&quot;ArgumentLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineBrush&quot;,&quot;ValueLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineBrush&quot;,&quot;ArgumentLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineStyle&quot;,&quot;ValueLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineStyle&quot;,&quot;PopupTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.PopupTemplate&quot;,&quot;LegendMarkerTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Series.LegendMarkerTemplate&quot;,&quot;CrosshairLabelTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Axis2D.CrosshairLabelTemplate&quot;,&quot;CustomDrawCrosshair&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControl.CustomDrawCrosshair&quot;,&quot;CustomDrawCrosshairEventArgs&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs&quot;,&quot;CrosshairLineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairLineElement&quot;,&quot;CrosshairAxisLabelElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairAxisLabelElements&quot;,&quot;CrosshairElementGroups&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairElementGroups&quot;,&quot;CrosshairElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementGroup.CrosshairElements&quot;,&quot;LabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LabelElement&quot;,&quot;SeriesPoint&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElement.SeriesPoint&quot;,&quot;AxisLabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.AxisLabelElement&quot;,&quot;LineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LineElement&quot;}" class="lang-vb">Private Sub OnChartControlMouseUp(ByVal sender As Object, ByVal e As MouseButtonEventArgs)
    Dim xyDiagram As XYDiagram2D = TryCast(chartControl.Diagram, XYDiagram2D)
    If xyDiagram Is Nothing Then
        Return
    End If

    xyDiagram.ShowCrosshair(e.GetPosition(chartControl))
End Sub
</code></pre></section>

Pass the Point.Empty value to the [XYDiagram2D.ShowCrosshair(Point)](/WPF/DevExpress.Xpf.Charts.XYDiagram2D.ShowCrosshair%28System.Windows.Point%29) method to hide the crosshair cursor. 

## Specify Crosshair Snap Mode

The crosshair cursor’s snap mode specifies what points the crosshair cursor highlights: points with the nearest argument to the mouse cursor or the nearest value. 

- **Nearest Argument (Default)**

    - ![Crosshair Snap Mode - Nearest Argument](/WPF/images/chart-control/crosshair-snap-mode-argument.png)

- **Nearest Value**

    - ![Crosshair Snap Mode - Nearest Value](/WPF/images/chart-control/crosshair-snap-mode-value.png)

The following markup specifies the [CrosshairOptions.SnapMode](/WPF/DevExpress.Xpf.Charts.CrosshairOptions.SnapMode) property to make the crosshair cursor to highlight points with similar values:

- XAML

<section id="tabpanel_Txi4tMePEQ-2_tabid-xaml" role="tabpanel" data-tab="tabid-xaml">
<pre><code data-code-links="{&quot;/ChartControl[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControlBase.CrosshairEnabled&quot;,&quot;/LineSeries2D[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairEnabled&quot;,&quot;SnapMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.SnapMode&quot;,&quot;ShowOutOfRangePoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOutOfRangePoints&quot;,&quot;ShowCrosshairLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowCrosshairLabels&quot;,&quot;ShowValueLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowValueLabels&quot;,&quot;ShowValueLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowValueLine&quot;,&quot;ShowArgumentLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLabels&quot;,&quot;ShowArgumentLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLine&quot;,&quot;HighlightPoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.HighlightPoints&quot;,&quot;/StockSeries2D[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairLabelPattern&quot;,&quot;/RateOfChange[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Indicator.CrosshairLabelPattern&quot;,&quot;GroupHeaderPattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.GroupHeaderPattern&quot;,&quot;Pattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairAxisLabelOptions.Pattern&quot;,&quot;CrosshairMousePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairMousePosition&quot;,&quot;Offset&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairLabelPosition.Offset&quot;,&quot;CrosshairFreePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition&quot;,&quot;DockCorner&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockCorner&quot;,&quot;DockTarget&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockTarget&quot;,&quot;ContentShowMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ContentShowMode&quot;,&quot;MaxCrosshairContentWidth&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentWidth&quot;,&quot;MaxCrosshairContentHeight&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentHeight&quot;,&quot;CrosshairLabelMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.CrosshairLabelMode&quot;,&quot;ShowOnlyInFocusedPane&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOnlyInFocusedPane&quot;,&quot;LinesMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.LinesMode&quot;,&quot;ArgumentLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineBrush&quot;,&quot;ValueLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineBrush&quot;,&quot;ArgumentLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineStyle&quot;,&quot;ValueLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineStyle&quot;,&quot;PopupTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.PopupTemplate&quot;,&quot;LegendMarkerTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Series.LegendMarkerTemplate&quot;,&quot;CrosshairLabelTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Axis2D.CrosshairLabelTemplate&quot;,&quot;CustomDrawCrosshair&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControl.CustomDrawCrosshair&quot;,&quot;CustomDrawCrosshairEventArgs&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs&quot;,&quot;CrosshairLineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairLineElement&quot;,&quot;CrosshairAxisLabelElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairAxisLabelElements&quot;,&quot;CrosshairElementGroups&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairElementGroups&quot;,&quot;CrosshairElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementGroup.CrosshairElements&quot;,&quot;LabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LabelElement&quot;,&quot;SeriesPoint&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElement.SeriesPoint&quot;,&quot;AxisLabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.AxisLabelElement&quot;,&quot;LineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LineElement&quot;}" class="lang-xaml">&lt;dxc:ChartControl.CrosshairOptions&gt;
    &lt;dxc:CrosshairOptions SnapMode=&quot;NearestValue&quot;/&gt;
&lt;/dxc:ChartControl.CrosshairOptions&gt;
</code></pre></section>

## Include Values That Are Out Of Chart Viewport

The crosshair cursor contains information about points that are in the chart [visual range](/WPF/115158/controls-and-libraries/charts-suite/chart-control/axes/whole-and-visual-ranges). Enable the [CrosshairOptions.ShowOutOfRangePoints](/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOutOfRangePoints) property to include points that are out of the chart viewport to the crosshair label.

- XAML

<section id="tabpanel_Txi4tMePEQ-3_tabid-xaml" role="tabpanel" data-tab="tabid-xaml">
<pre><code data-code-links="{&quot;/ChartControl[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControlBase.CrosshairEnabled&quot;,&quot;/LineSeries2D[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairEnabled&quot;,&quot;SnapMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.SnapMode&quot;,&quot;ShowOutOfRangePoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOutOfRangePoints&quot;,&quot;ShowCrosshairLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowCrosshairLabels&quot;,&quot;ShowValueLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowValueLabels&quot;,&quot;ShowValueLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowValueLine&quot;,&quot;ShowArgumentLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLabels&quot;,&quot;ShowArgumentLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLine&quot;,&quot;HighlightPoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.HighlightPoints&quot;,&quot;/StockSeries2D[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairLabelPattern&quot;,&quot;/RateOfChange[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Indicator.CrosshairLabelPattern&quot;,&quot;GroupHeaderPattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.GroupHeaderPattern&quot;,&quot;Pattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairAxisLabelOptions.Pattern&quot;,&quot;CrosshairMousePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairMousePosition&quot;,&quot;Offset&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairLabelPosition.Offset&quot;,&quot;CrosshairFreePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition&quot;,&quot;DockCorner&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockCorner&quot;,&quot;DockTarget&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockTarget&quot;,&quot;ContentShowMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ContentShowMode&quot;,&quot;MaxCrosshairContentWidth&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentWidth&quot;,&quot;MaxCrosshairContentHeight&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentHeight&quot;,&quot;CrosshairLabelMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.CrosshairLabelMode&quot;,&quot;ShowOnlyInFocusedPane&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOnlyInFocusedPane&quot;,&quot;LinesMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.LinesMode&quot;,&quot;ArgumentLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineBrush&quot;,&quot;ValueLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineBrush&quot;,&quot;ArgumentLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineStyle&quot;,&quot;ValueLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineStyle&quot;,&quot;PopupTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.PopupTemplate&quot;,&quot;LegendMarkerTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Series.LegendMarkerTemplate&quot;,&quot;CrosshairLabelTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Axis2D.CrosshairLabelTemplate&quot;,&quot;CustomDrawCrosshair&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControl.CustomDrawCrosshair&quot;,&quot;CustomDrawCrosshairEventArgs&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs&quot;,&quot;CrosshairLineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairLineElement&quot;,&quot;CrosshairAxisLabelElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairAxisLabelElements&quot;,&quot;CrosshairElementGroups&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairElementGroups&quot;,&quot;CrosshairElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementGroup.CrosshairElements&quot;,&quot;LabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LabelElement&quot;,&quot;SeriesPoint&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElement.SeriesPoint&quot;,&quot;AxisLabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.AxisLabelElement&quot;,&quot;LineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LineElement&quot;}" class="lang-xaml">&lt;dxc:ChartControl.CrosshairOptions&gt;
    &lt;dxc:CrosshairOptions ShowOutOfRangePoints=&quot;True&quot;&gt;
&lt;/dxc:ChartControl.CrosshairOptions&gt;
</code></pre></section>

## Display and Hide Crosshair Elements

The Chart control can display the crosshair cursor with argument axis labels, value lines, and value axis labels in addition to the crosshair cursor’s label and argument line:

![Image](/WPF/images/chart-control/make-all-crosshair-elements-visible.png)

The following properties allow you to display and hide crosshair cursor elements:

- XAML

<section id="tabpanel_Txi4tMePEQ-4_tabid-xaml" role="tabpanel" data-tab="tabid-xaml">
<pre><code data-code-links="{&quot;/ChartControl[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControlBase.CrosshairEnabled&quot;,&quot;/LineSeries2D[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairEnabled&quot;,&quot;SnapMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.SnapMode&quot;,&quot;ShowOutOfRangePoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOutOfRangePoints&quot;,&quot;ShowCrosshairLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowCrosshairLabels&quot;,&quot;ShowValueLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowValueLabels&quot;,&quot;ShowValueLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowValueLine&quot;,&quot;ShowArgumentLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLabels&quot;,&quot;ShowArgumentLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLine&quot;,&quot;HighlightPoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.HighlightPoints&quot;,&quot;/StockSeries2D[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairLabelPattern&quot;,&quot;/RateOfChange[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Indicator.CrosshairLabelPattern&quot;,&quot;GroupHeaderPattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.GroupHeaderPattern&quot;,&quot;Pattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairAxisLabelOptions.Pattern&quot;,&quot;CrosshairMousePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairMousePosition&quot;,&quot;Offset&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairLabelPosition.Offset&quot;,&quot;CrosshairFreePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition&quot;,&quot;DockCorner&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockCorner&quot;,&quot;DockTarget&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockTarget&quot;,&quot;ContentShowMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ContentShowMode&quot;,&quot;MaxCrosshairContentWidth&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentWidth&quot;,&quot;MaxCrosshairContentHeight&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentHeight&quot;,&quot;CrosshairLabelMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.CrosshairLabelMode&quot;,&quot;ShowOnlyInFocusedPane&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOnlyInFocusedPane&quot;,&quot;LinesMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.LinesMode&quot;,&quot;ArgumentLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineBrush&quot;,&quot;ValueLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineBrush&quot;,&quot;ArgumentLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineStyle&quot;,&quot;ValueLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineStyle&quot;,&quot;PopupTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.PopupTemplate&quot;,&quot;LegendMarkerTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Series.LegendMarkerTemplate&quot;,&quot;CrosshairLabelTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Axis2D.CrosshairLabelTemplate&quot;,&quot;CustomDrawCrosshair&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControl.CustomDrawCrosshair&quot;,&quot;CustomDrawCrosshairEventArgs&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs&quot;,&quot;CrosshairLineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairLineElement&quot;,&quot;CrosshairAxisLabelElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairAxisLabelElements&quot;,&quot;CrosshairElementGroups&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairElementGroups&quot;,&quot;CrosshairElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementGroup.CrosshairElements&quot;,&quot;LabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LabelElement&quot;,&quot;SeriesPoint&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElement.SeriesPoint&quot;,&quot;AxisLabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.AxisLabelElement&quot;,&quot;LineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LineElement&quot;}" class="lang-xaml">&lt;dxc:ChartControl&gt;
    &lt;dxc:ChartControl.CrosshairOptions&gt;
        &lt;dxc:CrosshairOptions ShowCrosshairLabels=&quot;True&quot;
                              ShowValueLabels=&quot;True&quot; 
                              ShowValueLine=&quot;True&quot; 
                              ShowArgumentLabels=&quot;True&quot; 
                              ShowArgumentLine=&quot;True&quot;/&gt;
    &lt;!--...--&gt;                          
&lt;/dxc:ChartControl&gt;                                      
</code></pre></section>

If a chart contains multiple series, the crosshair label displays a group header that shows the common argument for multiple points. To hide the group header, set the [CrosshairOptions.ShowGroupHeaders](/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowGroupHeaders) property to **False**. You can specify the [CrosshairOptions.GroupHeaderPattern](/WPF/DevExpress.Xpf.Charts.CrosshairOptions.GroupHeaderPattern) property to format the header. See the following section for more information: Format Crosshair Content. For an example on how to customize the group header appearance, refer to the following section: Specify Crosshair Label Content Appearance.

## Disable Highlighting Points

The crosshair cursor highlights points that a user hovers over. To disable this feature, set the [CrosshairOptions.HighlightPoints](/WPF/DevExpress.Xpf.Charts.CrosshairOptions.HighlightPoints) property to **False**.

![Points are not highlighted.](/WPF/images/chart-control/crosshair-highlight-points-false.png)

- XAML

<section id="tabpanel_Txi4tMePEQ-5_tabid-xaml" role="tabpanel" data-tab="tabid-xaml">
<pre><code data-code-links="{&quot;/ChartControl[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControlBase.CrosshairEnabled&quot;,&quot;/LineSeries2D[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairEnabled&quot;,&quot;SnapMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.SnapMode&quot;,&quot;ShowOutOfRangePoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOutOfRangePoints&quot;,&quot;ShowCrosshairLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowCrosshairLabels&quot;,&quot;ShowValueLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowValueLabels&quot;,&quot;ShowValueLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowValueLine&quot;,&quot;ShowArgumentLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLabels&quot;,&quot;ShowArgumentLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLine&quot;,&quot;HighlightPoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.HighlightPoints&quot;,&quot;/StockSeries2D[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairLabelPattern&quot;,&quot;/RateOfChange[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Indicator.CrosshairLabelPattern&quot;,&quot;GroupHeaderPattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.GroupHeaderPattern&quot;,&quot;Pattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairAxisLabelOptions.Pattern&quot;,&quot;CrosshairMousePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairMousePosition&quot;,&quot;Offset&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairLabelPosition.Offset&quot;,&quot;CrosshairFreePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition&quot;,&quot;DockCorner&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockCorner&quot;,&quot;DockTarget&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockTarget&quot;,&quot;ContentShowMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ContentShowMode&quot;,&quot;MaxCrosshairContentWidth&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentWidth&quot;,&quot;MaxCrosshairContentHeight&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentHeight&quot;,&quot;CrosshairLabelMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.CrosshairLabelMode&quot;,&quot;ShowOnlyInFocusedPane&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOnlyInFocusedPane&quot;,&quot;LinesMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.LinesMode&quot;,&quot;ArgumentLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineBrush&quot;,&quot;ValueLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineBrush&quot;,&quot;ArgumentLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineStyle&quot;,&quot;ValueLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineStyle&quot;,&quot;PopupTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.PopupTemplate&quot;,&quot;LegendMarkerTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Series.LegendMarkerTemplate&quot;,&quot;CrosshairLabelTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Axis2D.CrosshairLabelTemplate&quot;,&quot;CustomDrawCrosshair&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControl.CustomDrawCrosshair&quot;,&quot;CustomDrawCrosshairEventArgs&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs&quot;,&quot;CrosshairLineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairLineElement&quot;,&quot;CrosshairAxisLabelElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairAxisLabelElements&quot;,&quot;CrosshairElementGroups&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairElementGroups&quot;,&quot;CrosshairElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementGroup.CrosshairElements&quot;,&quot;LabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LabelElement&quot;,&quot;SeriesPoint&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElement.SeriesPoint&quot;,&quot;AxisLabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.AxisLabelElement&quot;,&quot;LineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LineElement&quot;}" class="lang-xaml">&lt;dxc:ChartControl&gt;
    &lt;dxc:ChartControl.CrosshairOptions&gt;
        &lt;dxc:CrosshairOptions HighlightPoints=&quot;False&quot;/&gt;
    &lt;/dxc:ChartControl.CrosshairOptions&gt;
&lt;/dxc:ChartControl&gt;                                      
</code></pre></section>

## Format Crosshair Content

Format patterns allow you to manage how crosshair elements display their content. You can specify these patterns for the elements labeled in the following image:

![Image](/WPF/images/chart-control/crosshair-label-patterns-result.png)

The following code specifies patterns the crosshair cursor should apply to its elements’ text:

- XAML

<section id="tabpanel_Txi4tMePEQ-6_tabid-xaml" role="tabpanel" data-tab="tabid-xaml">
<pre><code data-code-links="{&quot;/ChartControl[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControlBase.CrosshairEnabled&quot;,&quot;/LineSeries2D[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairEnabled&quot;,&quot;SnapMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.SnapMode&quot;,&quot;ShowOutOfRangePoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOutOfRangePoints&quot;,&quot;ShowCrosshairLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowCrosshairLabels&quot;,&quot;ShowValueLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowValueLabels&quot;,&quot;ShowValueLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowValueLine&quot;,&quot;ShowArgumentLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLabels&quot;,&quot;ShowArgumentLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLine&quot;,&quot;HighlightPoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.HighlightPoints&quot;,&quot;/StockSeries2D[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairLabelPattern&quot;,&quot;/RateOfChange[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Indicator.CrosshairLabelPattern&quot;,&quot;GroupHeaderPattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.GroupHeaderPattern&quot;,&quot;Pattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairAxisLabelOptions.Pattern&quot;,&quot;CrosshairMousePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairMousePosition&quot;,&quot;Offset&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairLabelPosition.Offset&quot;,&quot;CrosshairFreePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition&quot;,&quot;DockCorner&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockCorner&quot;,&quot;DockTarget&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockTarget&quot;,&quot;ContentShowMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ContentShowMode&quot;,&quot;MaxCrosshairContentWidth&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentWidth&quot;,&quot;MaxCrosshairContentHeight&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentHeight&quot;,&quot;CrosshairLabelMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.CrosshairLabelMode&quot;,&quot;ShowOnlyInFocusedPane&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOnlyInFocusedPane&quot;,&quot;LinesMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.LinesMode&quot;,&quot;ArgumentLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineBrush&quot;,&quot;ValueLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineBrush&quot;,&quot;ArgumentLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineStyle&quot;,&quot;ValueLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineStyle&quot;,&quot;PopupTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.PopupTemplate&quot;,&quot;LegendMarkerTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Series.LegendMarkerTemplate&quot;,&quot;CrosshairLabelTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Axis2D.CrosshairLabelTemplate&quot;,&quot;CustomDrawCrosshair&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControl.CustomDrawCrosshair&quot;,&quot;CustomDrawCrosshairEventArgs&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs&quot;,&quot;CrosshairLineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairLineElement&quot;,&quot;CrosshairAxisLabelElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairAxisLabelElements&quot;,&quot;CrosshairElementGroups&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairElementGroups&quot;,&quot;CrosshairElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementGroup.CrosshairElements&quot;,&quot;LabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LabelElement&quot;,&quot;SeriesPoint&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElement.SeriesPoint&quot;,&quot;AxisLabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.AxisLabelElement&quot;,&quot;LineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LineElement&quot;}" class="lang-xaml">&lt;dxc:ChartControl x:Name=&quot;chartControl&quot;&gt;
    &lt;dxc:ChartControl.CrosshairOptions&gt;
        &lt;dxc:CrosshairOptions GroupHeaderPattern=&quot;{}{A:MMMM d}&quot;
                              ShowOnlyInFocusedPane=&quot;False&quot;                               
                              ShowValueLabels=&quot;True&quot; 
                              ShowValueLine=&quot;True&quot;/&gt;
    &lt;/dxc:ChartControl.CrosshairOptions&gt;
    &lt;dxc:XYDiagram2D&gt;
        &lt;dxc:StockSeries2D DisplayName=&quot;Stock Prices&quot;
                           CrosshairLabelPattern=&quot;{}{S}:&amp;#x0a;Close: ${CV:.###}&amp;#x0a;High: ${HV:.###}&quot;&gt;
            &lt;dxc:StockSeries2D.Indicators&gt;
                &lt;dxc:RateOfChange DisplayName=&quot;Rate of Change&quot; 
                                  CrosshairEnabled=&quot;True&quot;
                                  CrosshairLabelPattern=&quot;{}{I}:&amp;#x0a;Value: {V:F3}&quot;&gt;
                &lt;/dxc:RateOfChange&gt;
            &lt;/dxc:StockSeries2D.Indicators&gt;            
        &lt;/dxc:StockSeries2D&gt;
        &lt;dxc:XYDiagram2D.AxisY&gt;
            &lt;dxc:AxisY2D&gt;
                &lt;dxc:AxisY2D.CrosshairAxisLabelOptions&gt;
                    &lt;dxc:CrosshairAxisLabelOptions Pattern=&quot;{}{V:.##}&quot;/&gt;
                &lt;/dxc:AxisY2D.CrosshairAxisLabelOptions&gt;                
            &lt;/dxc:AxisY2D&gt;
        &lt;/dxc:XYDiagram2D.AxisY&gt;
        &lt;dxc:XYDiagram2D.SecondaryAxesY&gt;
            &lt;dxc:SecondaryAxisY2D&gt;
                &lt;dxc:SecondaryAxisY2D.CrosshairAxisLabelOptions&gt;
                    &lt;dxc:CrosshairAxisLabelOptions Pattern=&quot;{}{V:.##}&quot;/&gt;
                &lt;/dxc:SecondaryAxisY2D.CrosshairAxisLabelOptions&gt;
            &lt;/dxc:SecondaryAxisY2D&gt;
        &lt;/dxc:XYDiagram2D.SecondaryAxesY&gt;
    &lt;/dxc:XYDiagram2D&gt;
&lt;/dxc:ChartControl&gt;
</code></pre></section>

Patterns can comprise plain text and placeholders with [format specifiers](/WPF/10408/common-concepts/formatting-values/format-specifiers). The following table lists available placeholders:

Show the table

| Pattern | Description |
| --- | --- |
| {S} | Displays the [Series.DisplayName](/WPF/DevExpress.Xpf.Charts.Series.DisplayName) value. |
| {A} | Displays a series point argument. |
| {V} | Displays series point values. |
|  | **Stacked series-specific placeholders** |
| {VP} | Displays series point values as percentages. |
| {G} | Displays the name of a stacked group. |
| {TV} | Displays a total group value. |
|  | **Bubble series-specific placeholders** |
| {W} | Displays the weight. |
|  | **Range series-specific placeholders** |
| {V1} | Displays the first value. |
| {V2} | Displays the second value. |
| {VD} | Displays the duration between the first and second data point values formatted using a common time format (e.g. HH:MM:SS for date time values and #.## for numeric values). |
| {VDTD} | Displays the duration between the first and second date-time data point values in days. |
| {VDTH} | Displays the duration between the first and second date-time data point values in hours. |
| {VDTM} | Displays the duration between the first and second date-time data point values in minutes. |
| {VDTS} | Displays the duration between the first and second date-time data point values in seconds. |
| {VDTMS} | Displays the duration between the first and second date-time data point values in milliseconds. |
|  | **Financial series specific placeholders** |
| {OV} | Displays the open value. |
| {HV} | Displays the high value. |
| {LV} | Displays the low value. |
| {CV} | Displays the close value. |
|  | **Indicator specific placeholders** |
| {I} | Displays an indicator name. |
| {A} | Displays an indicator point’s argument. |
| {V} | Displays a single-line indicator or MACD indicator point’s value. |
| {SV} | Displays a MACD indicator signal line’s point value. |
| {AV} | Displays the [MovingAverage](/WPF/DevExpress.Xpf.Charts.MovingAverage) indicator value. |
| {LV} | Displays the [MovingAverage](/WPF/DevExpress.Xpf.Charts.MovingAverage) indicator lower envelope line point’s value. |
| {UV} | Displays the [Moving Average](/WPF/14329/controls-and-libraries/charts-suite/chart-control/series/indicators/moving-average-and-envelope) indicator upper envelope line point’s value. |
| {T} | Displays the [Error Bar](/WPF/116251/controls-and-libraries/charts-suite/chart-control/series/indicators/error-bars) indicator point’s top value. |
| {B} | Displays the [Error Bar](/WPF/116251/controls-and-libraries/charts-suite/chart-control/series/indicators/error-bars) indicator point’s bottom value. |
|  | **X-axis label specific placeholders** |
| {A} | Displays a series point argument. |
|  | **Y-axis label specific placeholders** |
| {V} | Displays series point values. |
| {VP} | Displays series point values as percentages. |

In XAML, insert empty brackets into the beginning of a pattern if it starts with a placeholder. Refer to the following page for more information: [{} Escape sequence / markup extension](https://docs.microsoft.com/en-us/dotnet/desktop/xaml-services/escape-sequence-markup-extension).

When the Chart control or a series is bound to data, the pattern may contain data field values in addition to placeholders. For example, the data source contains the **Discount** field and the pattern may look like: *{S}: {V:F2} (Discount: {Discount:P0})*.

### More Examples

- [How to: Format Values Displayed in a Crosshair Cursor Using a Crosshair Label's Patterns](/WPF/14695/controls-and-libraries/charts-suite/chart-control/examples/appearance-customization/how-to-format-values-displayed-in-a-crosshair-cursor-using-a-crosshair-labels-patterns)

## Specify Crosshair Label Position

The [CrosshairOptionsBase.CommonLabelPosition](/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.CommonLabelPosition) property allows you specify the crosshair label position. You can use one of the following objects:

- CrosshairMousePosition (Default)

    - When this mode is used, the crosshair label follows the mouse cursor.

![Crosshair Mouse Position](/WPF/images/chart-control/crosshair-mouse-position.png)

- XAML

<section id="tabpanel_Txi4tMePEQ-7_tabid-xaml" role="tabpanel" data-tab="tabid-xaml">
<pre><code data-code-links="{&quot;/ChartControl[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControlBase.CrosshairEnabled&quot;,&quot;/LineSeries2D[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairEnabled&quot;,&quot;SnapMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.SnapMode&quot;,&quot;ShowOutOfRangePoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOutOfRangePoints&quot;,&quot;ShowCrosshairLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowCrosshairLabels&quot;,&quot;ShowValueLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowValueLabels&quot;,&quot;ShowValueLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowValueLine&quot;,&quot;ShowArgumentLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLabels&quot;,&quot;ShowArgumentLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLine&quot;,&quot;HighlightPoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.HighlightPoints&quot;,&quot;/StockSeries2D[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairLabelPattern&quot;,&quot;/RateOfChange[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Indicator.CrosshairLabelPattern&quot;,&quot;GroupHeaderPattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.GroupHeaderPattern&quot;,&quot;Pattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairAxisLabelOptions.Pattern&quot;,&quot;CrosshairMousePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairMousePosition&quot;,&quot;Offset&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairLabelPosition.Offset&quot;,&quot;CrosshairFreePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition&quot;,&quot;DockCorner&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockCorner&quot;,&quot;DockTarget&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockTarget&quot;,&quot;ContentShowMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ContentShowMode&quot;,&quot;MaxCrosshairContentWidth&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentWidth&quot;,&quot;MaxCrosshairContentHeight&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentHeight&quot;,&quot;CrosshairLabelMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.CrosshairLabelMode&quot;,&quot;ShowOnlyInFocusedPane&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOnlyInFocusedPane&quot;,&quot;LinesMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.LinesMode&quot;,&quot;ArgumentLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineBrush&quot;,&quot;ValueLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineBrush&quot;,&quot;ArgumentLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineStyle&quot;,&quot;ValueLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineStyle&quot;,&quot;PopupTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.PopupTemplate&quot;,&quot;LegendMarkerTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Series.LegendMarkerTemplate&quot;,&quot;CrosshairLabelTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Axis2D.CrosshairLabelTemplate&quot;,&quot;CustomDrawCrosshair&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControl.CustomDrawCrosshair&quot;,&quot;CustomDrawCrosshairEventArgs&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs&quot;,&quot;CrosshairLineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairLineElement&quot;,&quot;CrosshairAxisLabelElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairAxisLabelElements&quot;,&quot;CrosshairElementGroups&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairElementGroups&quot;,&quot;CrosshairElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementGroup.CrosshairElements&quot;,&quot;LabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LabelElement&quot;,&quot;SeriesPoint&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElement.SeriesPoint&quot;,&quot;AxisLabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.AxisLabelElement&quot;,&quot;LineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LineElement&quot;}" class="lang-xaml">&lt;dxc:ChartControl.CrosshairOptions&gt;
    &lt;dxc:CrosshairOptions&gt;
        &lt;dxc:CrosshairOptions.CommonLabelPosition&gt;
            &lt;dxc:CrosshairMousePosition Offset=&quot;12, 12&quot;/&gt;
        &lt;/dxc:CrosshairOptions.CommonLabelPosition&gt;      
    &lt;/dxc:CrosshairOptions&gt;
&lt;/dxc:ChartControl.CrosshairOptions&gt;
</code></pre></section>

- CrosshairFreePosition

    - When this mode is used, the crosshair label is attached to a corner of a dock target object.

![Crosshair Free Position](/WPF/images/chart-control/crosshair-free-position.png)

- XAML

<section id="tabpanel_Txi4tMePEQ-8_tabid-xaml" role="tabpanel" data-tab="tabid-xaml">
<pre><code data-code-links="{&quot;/ChartControl[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControlBase.CrosshairEnabled&quot;,&quot;/LineSeries2D[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairEnabled&quot;,&quot;SnapMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.SnapMode&quot;,&quot;ShowOutOfRangePoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOutOfRangePoints&quot;,&quot;ShowCrosshairLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowCrosshairLabels&quot;,&quot;ShowValueLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowValueLabels&quot;,&quot;ShowValueLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowValueLine&quot;,&quot;ShowArgumentLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLabels&quot;,&quot;ShowArgumentLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLine&quot;,&quot;HighlightPoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.HighlightPoints&quot;,&quot;/StockSeries2D[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairLabelPattern&quot;,&quot;/RateOfChange[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Indicator.CrosshairLabelPattern&quot;,&quot;GroupHeaderPattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.GroupHeaderPattern&quot;,&quot;Pattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairAxisLabelOptions.Pattern&quot;,&quot;CrosshairMousePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairMousePosition&quot;,&quot;Offset&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairLabelPosition.Offset&quot;,&quot;CrosshairFreePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition&quot;,&quot;DockCorner&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockCorner&quot;,&quot;DockTarget&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockTarget&quot;,&quot;ContentShowMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ContentShowMode&quot;,&quot;MaxCrosshairContentWidth&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentWidth&quot;,&quot;MaxCrosshairContentHeight&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentHeight&quot;,&quot;CrosshairLabelMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.CrosshairLabelMode&quot;,&quot;ShowOnlyInFocusedPane&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOnlyInFocusedPane&quot;,&quot;LinesMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.LinesMode&quot;,&quot;ArgumentLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineBrush&quot;,&quot;ValueLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineBrush&quot;,&quot;ArgumentLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineStyle&quot;,&quot;ValueLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineStyle&quot;,&quot;PopupTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.PopupTemplate&quot;,&quot;LegendMarkerTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Series.LegendMarkerTemplate&quot;,&quot;CrosshairLabelTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Axis2D.CrosshairLabelTemplate&quot;,&quot;CustomDrawCrosshair&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControl.CustomDrawCrosshair&quot;,&quot;CustomDrawCrosshairEventArgs&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs&quot;,&quot;CrosshairLineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairLineElement&quot;,&quot;CrosshairAxisLabelElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairAxisLabelElements&quot;,&quot;CrosshairElementGroups&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairElementGroups&quot;,&quot;CrosshairElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementGroup.CrosshairElements&quot;,&quot;LabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LabelElement&quot;,&quot;SeriesPoint&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElement.SeriesPoint&quot;,&quot;AxisLabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.AxisLabelElement&quot;,&quot;LineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LineElement&quot;}" class="lang-xaml">&lt;dxc:ChartControl.CrosshairOptions&gt;
    &lt;dxc:CrosshairOptions&gt;
        &lt;dxc:CrosshairOptions.CommonLabelPosition&gt;
            &lt;dxc:CrosshairFreePosition DockCorner=&quot;TopLeft&quot; 
                                    DockTarget=&quot;{Binding ElementName=chart}&quot;
                                    Offset=&quot;12, 12&quot;/&gt;
        &lt;/dxc:CrosshairOptions.CommonLabelPosition&gt;                    
    &lt;/dxc:CrosshairOptions&gt;
&lt;/dxc:ChartControl.CrosshairOptions&gt;
</code></pre></section>

## Show Crosshair Content in a Legend

The crosshair cursor can display its content in a [legend](/WPF/6343/controls-and-libraries/charts-suite/chart-control/legends) instead of the Crosshair label. The crosshair cursor uses a legend the [Series.Legend](/WPF/DevExpress.Xpf.Charts.Series.Legend) or [Indicator.Legend](/WPF/DevExpress.Xpf.Charts.Indicator.Legend) property specifies. If these properties are not defined, the crosshair cursor uses the first legend in the [ChartControlBase.Legends](/WPF/DevExpress.Xpf.Charts.ChartControlBase.Legends) collection.

![Image](/WPF/images/chart-control/crosshair-content-in-legend.png)

The code below makes the crosshair cursor to display its content in a legend and configures legend settings:

- XAML

<section id="tabpanel_Txi4tMePEQ-9_tabid-xaml" role="tabpanel" data-tab="tabid-xaml">
<pre><code data-code-links="{&quot;/ChartControl[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControlBase.CrosshairEnabled&quot;,&quot;/LineSeries2D[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairEnabled&quot;,&quot;SnapMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.SnapMode&quot;,&quot;ShowOutOfRangePoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOutOfRangePoints&quot;,&quot;ShowCrosshairLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowCrosshairLabels&quot;,&quot;ShowValueLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowValueLabels&quot;,&quot;ShowValueLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowValueLine&quot;,&quot;ShowArgumentLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLabels&quot;,&quot;ShowArgumentLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLine&quot;,&quot;HighlightPoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.HighlightPoints&quot;,&quot;/StockSeries2D[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairLabelPattern&quot;,&quot;/RateOfChange[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Indicator.CrosshairLabelPattern&quot;,&quot;GroupHeaderPattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.GroupHeaderPattern&quot;,&quot;Pattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairAxisLabelOptions.Pattern&quot;,&quot;CrosshairMousePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairMousePosition&quot;,&quot;Offset&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairLabelPosition.Offset&quot;,&quot;CrosshairFreePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition&quot;,&quot;DockCorner&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockCorner&quot;,&quot;DockTarget&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockTarget&quot;,&quot;ContentShowMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ContentShowMode&quot;,&quot;MaxCrosshairContentWidth&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentWidth&quot;,&quot;MaxCrosshairContentHeight&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentHeight&quot;,&quot;CrosshairLabelMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.CrosshairLabelMode&quot;,&quot;ShowOnlyInFocusedPane&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOnlyInFocusedPane&quot;,&quot;LinesMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.LinesMode&quot;,&quot;ArgumentLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineBrush&quot;,&quot;ValueLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineBrush&quot;,&quot;ArgumentLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineStyle&quot;,&quot;ValueLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineStyle&quot;,&quot;PopupTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.PopupTemplate&quot;,&quot;LegendMarkerTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Series.LegendMarkerTemplate&quot;,&quot;CrosshairLabelTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Axis2D.CrosshairLabelTemplate&quot;,&quot;CustomDrawCrosshair&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControl.CustomDrawCrosshair&quot;,&quot;CustomDrawCrosshairEventArgs&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs&quot;,&quot;CrosshairLineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairLineElement&quot;,&quot;CrosshairAxisLabelElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairAxisLabelElements&quot;,&quot;CrosshairElementGroups&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairElementGroups&quot;,&quot;CrosshairElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementGroup.CrosshairElements&quot;,&quot;LabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LabelElement&quot;,&quot;SeriesPoint&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElement.SeriesPoint&quot;,&quot;AxisLabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.AxisLabelElement&quot;,&quot;LineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LineElement&quot;}" class="lang-xaml">&lt;dxc:ChartControl&gt;
    &lt;dxc:ChartControl.CrosshairOptions&gt;
        &lt;dxc:CrosshairOptions ContentShowMode=&quot;Legend&quot;/&gt;
    &lt;/dxc:ChartControl.CrosshairOptions&gt;
    &lt;dxc:ChartControl.Legends&gt;
    &lt;dxc:Legend MaxCrosshairContentWidth=&quot;50&quot;
                MaxCrosshairContentHeight=&quot;20&quot;
                Orientation=&quot;Vertical&quot;/&gt;
    &lt;/dxc:ChartControl.Legends&gt;
    &lt;!-- ... --&gt;
&lt;/dxc:ChartControl&gt;
</code></pre></section>

Note

Use the [XYSeries2D.CrosshairContentShowMode](/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairContentShowMode) and [Indicator.CrosshairContentShowMode](/WPF/DevExpress.Xpf.Charts.Indicator.CrosshairContentShowMode) properties to specify an element the crosshair cursor should use for an individual series/indicator to display related information.

## Display Individual Labels for Each Series/Indicator

The crosshair cursor can display individual labels for each series/indicator instead of a common label:

![Image](/WPF/images/chart-control/crosshair-label-mode--show-for-each-series.png)

The following code demonstrates how to enable individual crosshair labels:

- XAML

<section id="tabpanel_Txi4tMePEQ-10_tabid-xaml" role="tabpanel" data-tab="tabid-xaml">
<pre><code data-code-links="{&quot;/ChartControl[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControlBase.CrosshairEnabled&quot;,&quot;/LineSeries2D[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairEnabled&quot;,&quot;SnapMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.SnapMode&quot;,&quot;ShowOutOfRangePoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOutOfRangePoints&quot;,&quot;ShowCrosshairLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowCrosshairLabels&quot;,&quot;ShowValueLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowValueLabels&quot;,&quot;ShowValueLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowValueLine&quot;,&quot;ShowArgumentLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLabels&quot;,&quot;ShowArgumentLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLine&quot;,&quot;HighlightPoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.HighlightPoints&quot;,&quot;/StockSeries2D[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairLabelPattern&quot;,&quot;/RateOfChange[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Indicator.CrosshairLabelPattern&quot;,&quot;GroupHeaderPattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.GroupHeaderPattern&quot;,&quot;Pattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairAxisLabelOptions.Pattern&quot;,&quot;CrosshairMousePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairMousePosition&quot;,&quot;Offset&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairLabelPosition.Offset&quot;,&quot;CrosshairFreePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition&quot;,&quot;DockCorner&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockCorner&quot;,&quot;DockTarget&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockTarget&quot;,&quot;ContentShowMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ContentShowMode&quot;,&quot;MaxCrosshairContentWidth&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentWidth&quot;,&quot;MaxCrosshairContentHeight&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentHeight&quot;,&quot;CrosshairLabelMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.CrosshairLabelMode&quot;,&quot;ShowOnlyInFocusedPane&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOnlyInFocusedPane&quot;,&quot;LinesMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.LinesMode&quot;,&quot;ArgumentLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineBrush&quot;,&quot;ValueLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineBrush&quot;,&quot;ArgumentLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineStyle&quot;,&quot;ValueLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineStyle&quot;,&quot;PopupTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.PopupTemplate&quot;,&quot;LegendMarkerTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Series.LegendMarkerTemplate&quot;,&quot;CrosshairLabelTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Axis2D.CrosshairLabelTemplate&quot;,&quot;CustomDrawCrosshair&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControl.CustomDrawCrosshair&quot;,&quot;CustomDrawCrosshairEventArgs&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs&quot;,&quot;CrosshairLineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairLineElement&quot;,&quot;CrosshairAxisLabelElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairAxisLabelElements&quot;,&quot;CrosshairElementGroups&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairElementGroups&quot;,&quot;CrosshairElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementGroup.CrosshairElements&quot;,&quot;LabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LabelElement&quot;,&quot;SeriesPoint&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElement.SeriesPoint&quot;,&quot;AxisLabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.AxisLabelElement&quot;,&quot;LineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LineElement&quot;}" class="lang-xaml">&lt;dxc:ChartControl.CrosshairOptions&gt;
    &lt;dxc:CrosshairOptions CrosshairLabelMode=&quot;ShowForEachSeries&quot;/&gt;
&lt;/dxc:ChartControl.CrosshairOptions&gt;
</code></pre></section>

Note

The crosshair label is automatically displayed with a beak in the [CrosshairLabelMode.ShowForEachSeries](/WPF/DevExpress.Xpf.Charts.CrosshairLabelMode) and [CrosshairLabelMode.ShowForNearestSeries](/WPF/DevExpress.Xpf.Charts.CrosshairLabelMode) modes.

## Show the Crosshair Cursor Only in the Selected Pane

If the chart contains multiple panes, it draws the crosshair cursor with a common label through all panes. Enable the [CrosshairOptions.ShowOnlyInFocusedPane](/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOnlyInFocusedPane) property to show the crosshair only in the pane that a user hovers over with the mouse cursor.

![The crosshair is displayed only in a specific pane.](/WPF/images/chart-control/crosshair-show-in-focused-pane-true.png)

- XAML

<section id="tabpanel_Txi4tMePEQ-11_tabid-xaml" role="tabpanel" data-tab="tabid-xaml">
<pre><code data-code-links="{&quot;/ChartControl[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControlBase.CrosshairEnabled&quot;,&quot;/LineSeries2D[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairEnabled&quot;,&quot;SnapMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.SnapMode&quot;,&quot;ShowOutOfRangePoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOutOfRangePoints&quot;,&quot;ShowCrosshairLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowCrosshairLabels&quot;,&quot;ShowValueLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowValueLabels&quot;,&quot;ShowValueLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowValueLine&quot;,&quot;ShowArgumentLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLabels&quot;,&quot;ShowArgumentLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLine&quot;,&quot;HighlightPoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.HighlightPoints&quot;,&quot;/StockSeries2D[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairLabelPattern&quot;,&quot;/RateOfChange[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Indicator.CrosshairLabelPattern&quot;,&quot;GroupHeaderPattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.GroupHeaderPattern&quot;,&quot;Pattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairAxisLabelOptions.Pattern&quot;,&quot;CrosshairMousePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairMousePosition&quot;,&quot;Offset&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairLabelPosition.Offset&quot;,&quot;CrosshairFreePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition&quot;,&quot;DockCorner&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockCorner&quot;,&quot;DockTarget&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockTarget&quot;,&quot;ContentShowMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ContentShowMode&quot;,&quot;MaxCrosshairContentWidth&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentWidth&quot;,&quot;MaxCrosshairContentHeight&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentHeight&quot;,&quot;CrosshairLabelMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.CrosshairLabelMode&quot;,&quot;ShowOnlyInFocusedPane&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOnlyInFocusedPane&quot;,&quot;LinesMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.LinesMode&quot;,&quot;ArgumentLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineBrush&quot;,&quot;ValueLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineBrush&quot;,&quot;ArgumentLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineStyle&quot;,&quot;ValueLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineStyle&quot;,&quot;PopupTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.PopupTemplate&quot;,&quot;LegendMarkerTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Series.LegendMarkerTemplate&quot;,&quot;CrosshairLabelTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Axis2D.CrosshairLabelTemplate&quot;,&quot;CustomDrawCrosshair&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControl.CustomDrawCrosshair&quot;,&quot;CustomDrawCrosshairEventArgs&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs&quot;,&quot;CrosshairLineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairLineElement&quot;,&quot;CrosshairAxisLabelElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairAxisLabelElements&quot;,&quot;CrosshairElementGroups&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairElementGroups&quot;,&quot;CrosshairElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementGroup.CrosshairElements&quot;,&quot;LabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LabelElement&quot;,&quot;SeriesPoint&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElement.SeriesPoint&quot;,&quot;AxisLabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.AxisLabelElement&quot;,&quot;LineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LineElement&quot;}" class="lang-xaml">&lt;dxc:ChartControl&gt;
    &lt;dxc:ChartControl.CrosshairOptions&gt;
        &lt;dxc:CrosshairOptions ShowOnlyInFocusedPane=&quot;True&quot;/&gt;
    &lt;/dxc:ChartControl.CrosshairOptions&gt;
    &lt;!-- ... --&gt;
&lt;/dxc:ChartControl&gt;
</code></pre></section>

## Set Line Snap Mode

The crosshair cursor supports the following modes that specify how to display crosshair lines:

- Auto (Default)

    - Crosshair lines are drawn through highlighted points.

![Lines Snap Mode - Auto](/WPF/images/chart-control/crosshair-lines-snap-mode-auto.png)

- Free

    - Crosshair lines intersect at the mouse pointer position.

![Lines Snap Mode - Free](/WPF/images/chart-control/crosshair-lines-snap-mode-free.png)

The following code snippet makes the crosshair draw argument and value lines at the mouse cursor position:

- XAML

<section id="tabpanel_Txi4tMePEQ-12_tabid-xaml" role="tabpanel" data-tab="tabid-xaml">
<pre><code data-code-links="{&quot;/ChartControl[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControlBase.CrosshairEnabled&quot;,&quot;/LineSeries2D[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairEnabled&quot;,&quot;SnapMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.SnapMode&quot;,&quot;ShowOutOfRangePoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOutOfRangePoints&quot;,&quot;ShowCrosshairLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowCrosshairLabels&quot;,&quot;ShowValueLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowValueLabels&quot;,&quot;ShowValueLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowValueLine&quot;,&quot;ShowArgumentLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLabels&quot;,&quot;ShowArgumentLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLine&quot;,&quot;HighlightPoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.HighlightPoints&quot;,&quot;/StockSeries2D[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairLabelPattern&quot;,&quot;/RateOfChange[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Indicator.CrosshairLabelPattern&quot;,&quot;GroupHeaderPattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.GroupHeaderPattern&quot;,&quot;Pattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairAxisLabelOptions.Pattern&quot;,&quot;CrosshairMousePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairMousePosition&quot;,&quot;Offset&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairLabelPosition.Offset&quot;,&quot;CrosshairFreePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition&quot;,&quot;DockCorner&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockCorner&quot;,&quot;DockTarget&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockTarget&quot;,&quot;ContentShowMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ContentShowMode&quot;,&quot;MaxCrosshairContentWidth&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentWidth&quot;,&quot;MaxCrosshairContentHeight&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentHeight&quot;,&quot;CrosshairLabelMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.CrosshairLabelMode&quot;,&quot;ShowOnlyInFocusedPane&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOnlyInFocusedPane&quot;,&quot;LinesMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.LinesMode&quot;,&quot;ArgumentLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineBrush&quot;,&quot;ValueLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineBrush&quot;,&quot;ArgumentLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineStyle&quot;,&quot;ValueLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineStyle&quot;,&quot;PopupTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.PopupTemplate&quot;,&quot;LegendMarkerTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Series.LegendMarkerTemplate&quot;,&quot;CrosshairLabelTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Axis2D.CrosshairLabelTemplate&quot;,&quot;CustomDrawCrosshair&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControl.CustomDrawCrosshair&quot;,&quot;CustomDrawCrosshairEventArgs&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs&quot;,&quot;CrosshairLineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairLineElement&quot;,&quot;CrosshairAxisLabelElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairAxisLabelElements&quot;,&quot;CrosshairElementGroups&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairElementGroups&quot;,&quot;CrosshairElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementGroup.CrosshairElements&quot;,&quot;LabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LabelElement&quot;,&quot;SeriesPoint&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElement.SeriesPoint&quot;,&quot;AxisLabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.AxisLabelElement&quot;,&quot;LineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LineElement&quot;}" class="lang-xaml">&lt;dxc:ChartControl.CrosshairOptions&gt;
    &lt;dxc:CrosshairOptions LinesMode=&quot;Free&quot;/&gt;
&lt;/dxc:ChartControl.CrosshairOptions&gt;
</code></pre></section>

## Customize Crosshair Cursor Element Appearance

### Specify Crosshair Label and Line Appearance

The Chart control allows you to fine-tune the appearance of crosshair cursor axis labels, lines, and popup:

![Image](/WPF/images/chart-control/customized-crosshair.png)

The example below configures the crosshair cursor’s appearance to resemble to the one in the image above:

- XAML

<section id="tabpanel_Txi4tMePEQ-13_tabid-xaml" role="tabpanel" data-tab="tabid-xaml">
<pre><code data-code-links="{&quot;/ChartControl[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControlBase.CrosshairEnabled&quot;,&quot;/LineSeries2D[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairEnabled&quot;,&quot;SnapMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.SnapMode&quot;,&quot;ShowOutOfRangePoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOutOfRangePoints&quot;,&quot;ShowCrosshairLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowCrosshairLabels&quot;,&quot;ShowValueLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowValueLabels&quot;,&quot;ShowValueLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowValueLine&quot;,&quot;ShowArgumentLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLabels&quot;,&quot;ShowArgumentLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLine&quot;,&quot;HighlightPoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.HighlightPoints&quot;,&quot;/StockSeries2D[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairLabelPattern&quot;,&quot;/RateOfChange[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Indicator.CrosshairLabelPattern&quot;,&quot;GroupHeaderPattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.GroupHeaderPattern&quot;,&quot;Pattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairAxisLabelOptions.Pattern&quot;,&quot;CrosshairMousePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairMousePosition&quot;,&quot;Offset&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairLabelPosition.Offset&quot;,&quot;CrosshairFreePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition&quot;,&quot;DockCorner&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockCorner&quot;,&quot;DockTarget&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockTarget&quot;,&quot;ContentShowMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ContentShowMode&quot;,&quot;MaxCrosshairContentWidth&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentWidth&quot;,&quot;MaxCrosshairContentHeight&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentHeight&quot;,&quot;CrosshairLabelMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.CrosshairLabelMode&quot;,&quot;ShowOnlyInFocusedPane&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOnlyInFocusedPane&quot;,&quot;LinesMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.LinesMode&quot;,&quot;ArgumentLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineBrush&quot;,&quot;ValueLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineBrush&quot;,&quot;ArgumentLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineStyle&quot;,&quot;ValueLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineStyle&quot;,&quot;PopupTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.PopupTemplate&quot;,&quot;LegendMarkerTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Series.LegendMarkerTemplate&quot;,&quot;CrosshairLabelTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Axis2D.CrosshairLabelTemplate&quot;,&quot;CustomDrawCrosshair&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControl.CustomDrawCrosshair&quot;,&quot;CustomDrawCrosshairEventArgs&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs&quot;,&quot;CrosshairLineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairLineElement&quot;,&quot;CrosshairAxisLabelElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairAxisLabelElements&quot;,&quot;CrosshairElementGroups&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairElementGroups&quot;,&quot;CrosshairElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementGroup.CrosshairElements&quot;,&quot;LabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LabelElement&quot;,&quot;SeriesPoint&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElement.SeriesPoint&quot;,&quot;AxisLabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.AxisLabelElement&quot;,&quot;LineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LineElement&quot;}" class="lang-xaml">&lt;dxc:ChartControl&gt;
    &lt;dxc:ChartControl.CrosshairOptions&gt;
        &lt;dxc:CrosshairOptions ArgumentLineBrush=&quot;Orange&quot; ValueLineBrush=&quot;DarkGray&quot;
                            ShowArgumentLabels=&quot;True&quot; ShowValueLabels=&quot;True&quot;
                            ShowValueLine=&quot;True&quot;&gt;
            &lt;dxc:CrosshairOptions.ArgumentLineStyle&gt;
                &lt;dxc:LineStyle Thickness=&quot;2&quot;&gt;
                    &lt;dxc:LineStyle.DashStyle&gt;
                        &lt;DashStyle Dashes=&quot;2 5&quot;/&gt;
                    &lt;/dxc:LineStyle.DashStyle&gt;
                &lt;/dxc:LineStyle&gt;
            &lt;/dxc:CrosshairOptions.ArgumentLineStyle&gt;
            &lt;dxc:CrosshairOptions.ValueLineStyle&gt;
                &lt;dxc:LineStyle Thickness=&quot;2&quot;&gt;
                    &lt;dxc:LineStyle.DashStyle&gt;
                        &lt;DashStyle Dashes=&quot;2 2&quot;/&gt;
                    &lt;/dxc:LineStyle.DashStyle&gt;
                &lt;/dxc:LineStyle&gt;
            &lt;/dxc:CrosshairOptions.ValueLineStyle&gt;
            &lt;dxc:CrosshairOptions.PopupTemplate&gt;
                &lt;DataTemplate&gt;
                    &lt;Border Background=&quot;#C0FFFFFF&quot; BorderBrush=&quot;#C0C0C0C0&quot; 
                            BorderThickness=&quot;1&quot; Padding=&quot;4&quot;&gt;
                        &lt;ItemsControl ItemsSource=&quot;{Binding PresentationData}&quot;&gt;
                            &lt;ItemsControl.ItemTemplate&gt;
                                &lt;DataTemplate&gt;
                                    &lt;ContentPresenter Content=&quot;{Binding}&quot; 
                                        ContentTemplate=&quot;{Binding Path=CrosshairSeriesLabelTemplate}&quot;/&gt;
                                &lt;/DataTemplate&gt;
                            &lt;/ItemsControl.ItemTemplate&gt;
                        &lt;/ItemsControl&gt;
                    &lt;/Border&gt;
                &lt;/DataTemplate&gt;
            &lt;/dxc:CrosshairOptions.PopupTemplate&gt;
        &lt;/dxc:CrosshairOptions&gt;
    &lt;/dxc:ChartControl.CrosshairOptions&gt;
    &lt;dxc:XYDiagram2D&gt;
        &lt;dxc:XYDiagram2D.SeriesTemplate&gt;
            &lt;dxc:BarSideBySideSeries2D&gt;
                &lt;dxc:BarSideBySideSeries2D.LegendMarkerTemplate&gt;
                    &lt;DataTemplate&gt;
                        &lt;StackPanel Orientation=&quot;Horizontal&quot;&gt;
                            &lt;Grid Width=&quot;12&quot;  Height=&quot;12&quot;&gt;
                                &lt;Ellipse Stretch=&quot;Uniform&quot; Fill=&quot;{Binding Path=MarkerBrush}&quot;
                                        Stroke=&quot;{Binding Path=MarkerLineBrush}&quot; StrokeThickness=&quot;2&quot;/&gt;
                            &lt;/Grid&gt;
                            &lt;TextBlock Text=&quot;{Binding Path=Text}&quot; Margin=&quot;4,0,0,0&quot; 
                                    VerticalAlignment=&quot;Center&quot; Width=&quot;55&quot;/&gt;
                        &lt;/StackPanel&gt;
                    &lt;/DataTemplate&gt;
                &lt;/dxc:BarSideBySideSeries2D.LegendMarkerTemplate&gt;
            &lt;/dxc:BarSideBySideSeries2D&gt;
        &lt;/dxc:XYDiagram2D.SeriesTemplate&gt;
        &lt;dxc:XYDiagram2D.AxisX&gt;
            &lt;dxc:AxisX2D&gt;
                &lt;dxc:AxisX2D.CrosshairLabelTemplate&gt;
                    &lt;DataTemplate&gt;
                        &lt;Grid&gt;
                            &lt;Border BorderThickness=&quot;1&quot;&gt;
                                &lt;Border.Background&gt;
                                    &lt;SolidColorBrush Color=&quot;Lavender&quot; /&gt;
                                &lt;/Border.Background&gt;
                                &lt;Label BorderThickness=&quot;1&quot; BorderBrush=&quot;DarkGray&quot;
                                    FontStyle=&quot;Italic&quot; Content=&quot;{Binding Path=Text}&quot; 
                                    Padding=&quot;1&quot; Foreground=&quot;Black&quot; 
                                    FontSize=&quot;14&quot;/&gt;
                            &lt;/Border&gt;
                        &lt;/Grid&gt;
                    &lt;/DataTemplate&gt;
                &lt;/dxc:AxisX2D.CrosshairLabelTemplate&gt;
            &lt;/dxc:AxisX2D&gt;            
        &lt;/dxc:XYDiagram2D.AxisX&gt;        
    &lt;/dxc:XYDiagram2D&gt;
&lt;/dxc:ChartControl&gt;
</code></pre></section>

Note

To specify the legend marker template for an indicator, use the [Indicator.LegendMarkerTemplate](/WPF/DevExpress.Xpf.Charts.Indicator.LegendMarkerTemplate) property.

### Specify Crosshair Label Content Appearance

Use the [XYSeries2D.CrosshairLabelTemplate](/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairLabelTemplate) property to configure appearance for crosshair series items and group header.

![Customized crosshair content appearance](/WPF/images/chart-control/crosshair-content-appearance-customization.png)

You can access the crosshair group header in the first series crosshair label template. The following code configures the crosshair label’s group header and first series item appearance:

- XAML

<section id="tabpanel_Txi4tMePEQ-14_tabid-xaml" role="tabpanel" data-tab="tabid-xaml">
<pre><code data-code-links="{&quot;/ChartControl[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControlBase.CrosshairEnabled&quot;,&quot;/LineSeries2D[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairEnabled&quot;,&quot;SnapMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.SnapMode&quot;,&quot;ShowOutOfRangePoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOutOfRangePoints&quot;,&quot;ShowCrosshairLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowCrosshairLabels&quot;,&quot;ShowValueLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowValueLabels&quot;,&quot;ShowValueLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowValueLine&quot;,&quot;ShowArgumentLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLabels&quot;,&quot;ShowArgumentLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLine&quot;,&quot;HighlightPoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.HighlightPoints&quot;,&quot;/StockSeries2D[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairLabelPattern&quot;,&quot;/RateOfChange[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Indicator.CrosshairLabelPattern&quot;,&quot;GroupHeaderPattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.GroupHeaderPattern&quot;,&quot;Pattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairAxisLabelOptions.Pattern&quot;,&quot;CrosshairMousePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairMousePosition&quot;,&quot;Offset&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairLabelPosition.Offset&quot;,&quot;CrosshairFreePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition&quot;,&quot;DockCorner&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockCorner&quot;,&quot;DockTarget&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockTarget&quot;,&quot;ContentShowMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ContentShowMode&quot;,&quot;MaxCrosshairContentWidth&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentWidth&quot;,&quot;MaxCrosshairContentHeight&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentHeight&quot;,&quot;CrosshairLabelMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.CrosshairLabelMode&quot;,&quot;ShowOnlyInFocusedPane&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOnlyInFocusedPane&quot;,&quot;LinesMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.LinesMode&quot;,&quot;ArgumentLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineBrush&quot;,&quot;ValueLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineBrush&quot;,&quot;ArgumentLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineStyle&quot;,&quot;ValueLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineStyle&quot;,&quot;PopupTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.PopupTemplate&quot;,&quot;LegendMarkerTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Series.LegendMarkerTemplate&quot;,&quot;CrosshairLabelTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairLabelTemplate&quot;,&quot;CustomDrawCrosshair&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControl.CustomDrawCrosshair&quot;,&quot;CustomDrawCrosshairEventArgs&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs&quot;,&quot;CrosshairLineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairLineElement&quot;,&quot;CrosshairAxisLabelElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairAxisLabelElements&quot;,&quot;CrosshairElementGroups&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairElementGroups&quot;,&quot;CrosshairElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementGroup.CrosshairElements&quot;,&quot;LabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LabelElement&quot;,&quot;SeriesPoint&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElement.SeriesPoint&quot;,&quot;AxisLabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.AxisLabelElement&quot;,&quot;LineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LineElement&quot;}" class="lang-xaml">&lt;Window
        xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;
        xmlns:x=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;
        xmlns:d=&quot;http://schemas.microsoft.com/expression/blend/2008&quot;
        xmlns:mc=&quot;http://schemas.openxmlformats.org/markup-compatibility/2006&quot;
        xmlns:local=&quot;clr-namespace:ResourceUsageChart&quot;
        xmlns:dxc=&quot;http://schemas.devexpress.com/winfx/2008/xaml/charts&quot; 
        x:Class=&quot;ResourceUsageChart.MainWindow&quot;
        xmlns:dxt=&quot;http://schemas.devexpress.com/winfx/2008/xaml/charts/themekeys&quot;
        mc:Ignorable=&quot;d&quot;
        Title=&quot;MainWindow&quot; Height=&quot;450&quot; Width=&quot;800&quot;&gt;
    &lt;Grid&gt;
        &lt;dxc:ChartControl&gt;
            &lt;dxc:ChartControl.CrosshairOptions&gt;
                &lt;dxc:CrosshairOptions ShowGroupHeaders=&quot;True&quot;/&gt;
            &lt;/dxc:ChartControl.CrosshairOptions&gt;
            &lt;dxc:ChartControl.Diagram&gt;
                &lt;dxc:XYDiagram2D&gt;
                    &lt;dxc:LineSeries2D
                        x:Name=&quot;process1Memory&quot;                       
                        ArgumentDataMember=&quot;Second&quot;
                        DisplayName=&quot;Process 1&quot;
                        ValueDataMember=&quot;Process1Memory&quot;&gt;
                        &lt;dxc:LineSeries2D.CrosshairLabelTemplate&gt;
                            &lt;DataTemplate&gt;
                                &lt;StackPanel Orientation=&quot;Vertical&quot;&gt;
                                    &lt;TextBlock Background=&quot;LightBlue&quot; 
                                           Text=&quot;{Binding HeaderText}&quot; 
                                           HorizontalAlignment=&quot;Left&quot; 
                                           VerticalAlignment=&quot;Center&quot; Margin=&quot;0,2&quot;
                                           Foreground=&quot;{Binding Foreground}&quot; 
                                           FontWeight=&quot;Bold&quot;
                                           FontStyle=&quot;{Binding FontStyle}&quot;
                                           FontSize=&quot;20&quot;
                                           FontStretch=&quot;{Binding FontStretch}&quot;
                                           FontFamily=&quot;{Binding FontFamily}&quot;
                                           Visibility=&quot;{Binding HeaderTextVisibility}&quot;/&gt;
                                    &lt;StackPanel Orientation=&quot;Horizontal&quot; Margin=&quot;0,2&quot;&gt;
                                        &lt;Grid Width=&quot;{DynamicResource {dxt:ChartControlThemeKey ResourceKey=LegendMarkerWidth}}&quot; 
                                          Height=&quot;{DynamicResource {dxt:ChartControlThemeKey ResourceKey=LegendMarkerHeight}}&quot;
                                          VerticalAlignment=&quot;Top&quot; Margin=&quot;0, 3, 0, 0&quot;
                                          Visibility=&quot;{Binding MarkerVisibility}&quot;&gt;
                                            &lt;Rectangle Stretch=&quot;Uniform&quot; Fill=&quot;Transparent&quot;/&gt;
                                            &lt;ContentPresenter Content=&quot;{Binding MarkerItem}&quot; ContentTemplate=&quot;{Binding RelativeSource={RelativeSource Self}, Path= Content.MarkerTemplate}&quot;/&gt;
                                        &lt;/Grid&gt;
                                        &lt;TextBlock Grid.Column=&quot;1&quot; Text=&quot;{Binding Text}&quot; 
                                               VerticalAlignment=&quot;Center&quot; 
                                               Margin=&quot;{DynamicResource {dxt:ChartControlThemeKey ResourceKey=LegendItemTextMargin}}&quot;
                                               Foreground=&quot;CadetBlue&quot; 
                                               FontWeight=&quot;{Binding FontWeight}&quot;
                                               FontStyle=&quot;{Binding FontStyle}&quot;
                                               FontSize=&quot;{Binding FontSize}&quot;
                                               FontStretch=&quot;{Binding FontStretch}&quot;
                                               FontFamily=&quot;{Binding FontFamily}&quot;
                                               Visibility=&quot;{Binding TextVisibility}&quot;/&gt;
                                    &lt;/StackPanel&gt;
                                &lt;/StackPanel&gt;
                            &lt;/DataTemplate&gt;
                        &lt;/dxc:LineSeries2D.CrosshairLabelTemplate&gt;
                    &lt;/dxc:LineSeries2D&gt;
                    &lt;dxc:LineSeries2D
                        x:Name=&quot;process2Memory&quot;                   
                        DisplayName=&quot;Process 2&quot;
                        ArgumentDataMember=&quot;Second&quot;
                        ValueDataMember=&quot;Process2Memory&quot;/&gt;
                    &lt;dxc:LineSeries2D
                        x:Name=&quot;process3Memory&quot;                   
                        DisplayName=&quot;Process 3&quot;
                        ArgumentDataMember=&quot;Second&quot;
                        ValueDataMember=&quot;Process3Memory&quot;/&gt;
                &lt;/dxc:XYDiagram2D&gt;
            &lt;/dxc:ChartControl.Diagram&gt;
        &lt;/dxc:ChartControl&gt;
    &lt;/Grid&gt;
&lt;/Window&gt;
</code></pre></section>

### More Examples

- [How to: Customize the Appearance of Crosshair Axis Labels](/WPF/11890/controls-and-libraries/charts-suite/chart-control/examples/appearance-customization/how-to-customize-the-appearance-of-crosshair-axis-labels)
- [How to: Customize the Appearance of Crosshair Series Labels](/WPF/11880/controls-and-libraries/charts-suite/chart-control/examples/appearance-customization/how-to-customize-the-appearance-of-crosshair-series-labels)

## Custom Draw the Crosshair Cursor

You can use the [ChartControl.CustomDrawCrosshair](/WPF/DevExpress.Xpf.Charts.ChartControl.CustomDrawCrosshair) event to customize the crosshair cursor’s appearance based on series or indicator data.

![Image](/WPF/images/chart-control/custom-draw-crosshair.png)

The following example shows how to use the **CustomDrawCrosshair** event to replicate crosshair cursor appearance to resemble the one in the image above:

- XAML

<section id="tabpanel_Txi4tMePEQ-15_tabid-xaml" role="tabpanel" data-tab="tabid-xaml">
<pre><code data-code-links="{&quot;/ChartControl[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControlBase.CrosshairEnabled&quot;,&quot;/LineSeries2D[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairEnabled&quot;,&quot;SnapMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.SnapMode&quot;,&quot;ShowOutOfRangePoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOutOfRangePoints&quot;,&quot;ShowCrosshairLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowCrosshairLabels&quot;,&quot;ShowValueLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowValueLabels&quot;,&quot;ShowValueLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowValueLine&quot;,&quot;ShowArgumentLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLabels&quot;,&quot;ShowArgumentLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLine&quot;,&quot;HighlightPoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.HighlightPoints&quot;,&quot;/StockSeries2D[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairLabelPattern&quot;,&quot;/RateOfChange[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Indicator.CrosshairLabelPattern&quot;,&quot;GroupHeaderPattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.GroupHeaderPattern&quot;,&quot;Pattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairAxisLabelOptions.Pattern&quot;,&quot;CrosshairMousePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairMousePosition&quot;,&quot;Offset&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairLabelPosition.Offset&quot;,&quot;CrosshairFreePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition&quot;,&quot;DockCorner&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockCorner&quot;,&quot;DockTarget&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockTarget&quot;,&quot;ContentShowMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ContentShowMode&quot;,&quot;MaxCrosshairContentWidth&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentWidth&quot;,&quot;MaxCrosshairContentHeight&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentHeight&quot;,&quot;CrosshairLabelMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.CrosshairLabelMode&quot;,&quot;ShowOnlyInFocusedPane&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOnlyInFocusedPane&quot;,&quot;LinesMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.LinesMode&quot;,&quot;ArgumentLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineBrush&quot;,&quot;ValueLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineBrush&quot;,&quot;ArgumentLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineStyle&quot;,&quot;ValueLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineStyle&quot;,&quot;PopupTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.PopupTemplate&quot;,&quot;LegendMarkerTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Series.LegendMarkerTemplate&quot;,&quot;CrosshairLabelTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Axis2D.CrosshairLabelTemplate&quot;,&quot;CustomDrawCrosshair&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControl.CustomDrawCrosshair&quot;,&quot;CustomDrawCrosshairEventArgs&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs&quot;,&quot;CrosshairLineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairLineElement&quot;,&quot;CrosshairAxisLabelElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairAxisLabelElements&quot;,&quot;CrosshairElementGroups&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairElementGroups&quot;,&quot;CrosshairElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementGroup.CrosshairElements&quot;,&quot;LabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LabelElement&quot;,&quot;SeriesPoint&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElement.SeriesPoint&quot;,&quot;AxisLabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.AxisLabelElement&quot;,&quot;LineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LineElement&quot;}" class="lang-xaml">&lt;dxc:ChartControl CustomDrawCrosshair=&quot;ChartControlCustomDrawCrosshair&quot;&gt;
    &lt;dxc:ChartControl.CrosshairOptions&gt;
        &lt;dxc:CrosshairOptions ShowValueLabels=&quot;True&quot; 
                              ShowValueLine=&quot;True&quot;
                              ShowArgumentLabels=&quot;True&quot;/&gt;             
    &lt;/dxc:ChartControl.CrosshairOptions&gt;
&lt;!--...--&gt;
&lt;/dxc:ChartControl&gt;
</code></pre></section>

- C#
- VB.NET

<section id="tabpanel_Txi4tMePEQ-16_tabid-csharp" role="tabpanel" data-tab="tabid-csharp">
<pre><code data-code-links="{&quot;/ChartControl[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControlBase.CrosshairEnabled&quot;,&quot;/LineSeries2D[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairEnabled&quot;,&quot;SnapMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.SnapMode&quot;,&quot;ShowOutOfRangePoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOutOfRangePoints&quot;,&quot;ShowCrosshairLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowCrosshairLabels&quot;,&quot;ShowValueLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowValueLabels&quot;,&quot;ShowValueLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowValueLine&quot;,&quot;ShowArgumentLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLabels&quot;,&quot;ShowArgumentLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLine&quot;,&quot;HighlightPoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.HighlightPoints&quot;,&quot;/StockSeries2D[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairLabelPattern&quot;,&quot;/RateOfChange[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Indicator.CrosshairLabelPattern&quot;,&quot;GroupHeaderPattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.GroupHeaderPattern&quot;,&quot;Pattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairAxisLabelOptions.Pattern&quot;,&quot;CrosshairMousePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairMousePosition&quot;,&quot;Offset&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairLabelPosition.Offset&quot;,&quot;CrosshairFreePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition&quot;,&quot;DockCorner&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockCorner&quot;,&quot;DockTarget&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockTarget&quot;,&quot;ContentShowMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ContentShowMode&quot;,&quot;MaxCrosshairContentWidth&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentWidth&quot;,&quot;MaxCrosshairContentHeight&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentHeight&quot;,&quot;CrosshairLabelMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.CrosshairLabelMode&quot;,&quot;ShowOnlyInFocusedPane&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOnlyInFocusedPane&quot;,&quot;LinesMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.LinesMode&quot;,&quot;ArgumentLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineBrush&quot;,&quot;ValueLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineBrush&quot;,&quot;ArgumentLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineStyle&quot;,&quot;ValueLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineStyle&quot;,&quot;PopupTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.PopupTemplate&quot;,&quot;LegendMarkerTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Series.LegendMarkerTemplate&quot;,&quot;CrosshairLabelTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Axis2D.CrosshairLabelTemplate&quot;,&quot;CustomDrawCrosshair&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControl.CustomDrawCrosshair&quot;,&quot;CustomDrawCrosshairEventArgs&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs&quot;,&quot;CrosshairLineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairLineElement&quot;,&quot;CrosshairAxisLabelElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairAxisLabelElements&quot;,&quot;CrosshairElementGroups&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairElementGroups&quot;,&quot;CrosshairElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementGroup.CrosshairElements&quot;,&quot;LabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LabelElement&quot;,&quot;SeriesPoint&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElement.SeriesPoint&quot;,&quot;AxisLabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.AxisLabelElement&quot;,&quot;LineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LineElement&quot;}" class="lang-csharp">private void ChartControlCustomDrawCrosshair(object sender, CustomDrawCrosshairEventArgs e) {
    e.CrosshairLineElement.Brush = Brushes.DarkSlateGray;
    foreach(CrosshairAxisLabelElement axisLabelElement in e.CrosshairAxisLabelElements) {
        axisLabelElement.Background = Brushes.Gray;
    }            
    if(e.CrosshairElementGroups.Count != 0) {
        foreach(CrosshairElement crosshairElement in e.CrosshairElementGroups[0].CrosshairElements) {
            if(crosshairElement != null) {
                 crosshairElement.LabelElement.Text = string.Format(&quot;${0}M&quot;, crosshairElement.SeriesPoint.Value);
                if(crosshairElement.SeriesPoint.Value &gt; 10) {
                    crosshairElement.AxisLabelElement.Background = Brushes.Green;
                    crosshairElement.LineElement.Brush = Brushes.Green;
                }
                else {
                    crosshairElement.AxisLabelElement.Background = Brushes.Orange;
                    crosshairElement.LineElement.Brush = Brushes.Orange;
                    crosshairElement.LineElement.LineStyle = new LineStyle { Thickness = 1 };
                }

            }
        }
    }
}
</code></pre></section>
<section id="tabpanel_Txi4tMePEQ-16_tabid-vb" role="tabpanel" data-tab="tabid-vb" aria-hidden="true" hidden="hidden">
<pre><code data-code-links="{&quot;/ChartControl[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControlBase.CrosshairEnabled&quot;,&quot;/LineSeries2D[^.][\\s\\S]*?(CrosshairEnabled)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairEnabled&quot;,&quot;SnapMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.SnapMode&quot;,&quot;ShowOutOfRangePoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOutOfRangePoints&quot;,&quot;ShowCrosshairLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowCrosshairLabels&quot;,&quot;ShowValueLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowValueLabels&quot;,&quot;ShowValueLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ShowValueLine&quot;,&quot;ShowArgumentLabels&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLabels&quot;,&quot;ShowArgumentLine&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowArgumentLine&quot;,&quot;HighlightPoints&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.HighlightPoints&quot;,&quot;/StockSeries2D[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.XYSeries2D.CrosshairLabelPattern&quot;,&quot;/RateOfChange[^.][\\s\\S]*?(CrosshairLabelPattern)/&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Indicator.CrosshairLabelPattern&quot;,&quot;GroupHeaderPattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.GroupHeaderPattern&quot;,&quot;Pattern&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairAxisLabelOptions.Pattern&quot;,&quot;CrosshairMousePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairMousePosition&quot;,&quot;Offset&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairLabelPosition.Offset&quot;,&quot;CrosshairFreePosition&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition&quot;,&quot;DockCorner&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockCorner&quot;,&quot;DockTarget&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairFreePosition.DockTarget&quot;,&quot;ContentShowMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ContentShowMode&quot;,&quot;MaxCrosshairContentWidth&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentWidth&quot;,&quot;MaxCrosshairContentHeight&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Legend.MaxCrosshairContentHeight&quot;,&quot;CrosshairLabelMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.CrosshairLabelMode&quot;,&quot;ShowOnlyInFocusedPane&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ShowOnlyInFocusedPane&quot;,&quot;LinesMode&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.LinesMode&quot;,&quot;ArgumentLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineBrush&quot;,&quot;ValueLineBrush&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineBrush&quot;,&quot;ArgumentLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ArgumentLineStyle&quot;,&quot;ValueLineStyle&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.ValueLineStyle&quot;,&quot;PopupTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairOptionsBase.PopupTemplate&quot;,&quot;LegendMarkerTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Series.LegendMarkerTemplate&quot;,&quot;CrosshairLabelTemplate&quot;:&quot;/WPF/DevExpress.Xpf.Charts.Axis2D.CrosshairLabelTemplate&quot;,&quot;CustomDrawCrosshair&quot;:&quot;/WPF/DevExpress.Xpf.Charts.ChartControl.CustomDrawCrosshair&quot;,&quot;CustomDrawCrosshairEventArgs&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs&quot;,&quot;CrosshairLineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairLineElement&quot;,&quot;CrosshairAxisLabelElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairAxisLabelElements&quot;,&quot;CrosshairElementGroups&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairElementGroups&quot;,&quot;CrosshairElements&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementGroup.CrosshairElements&quot;,&quot;LabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LabelElement&quot;,&quot;SeriesPoint&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElement.SeriesPoint&quot;,&quot;AxisLabelElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.AxisLabelElement&quot;,&quot;LineElement&quot;:&quot;/WPF/DevExpress.Xpf.Charts.CrosshairElementBase.LineElement&quot;}" class="lang-vb">Private Sub ChartControlCustomDrawCrosshair(ByVal sender As Object, ByVal e As CustomDrawCrosshairEventArgs)
    e.CrosshairLineElement.Brush = Brushes.DarkSlateGray
    For Each axisLabelElement As CrosshairAxisLabelElement In e.CrosshairAxisLabelElements
        axisLabelElement.Background = Brushes.Gray
    Next
    If e.CrosshairElementGroups.Count &lt;&gt; 0 Then
        For Each crosshairElement As CrosshairElement In e.CrosshairElementGroups(0).CrosshairElements
            If crosshairElement IsNot Nothing Then
                crosshairElement.LabelElement.Text = String.Format(&quot;${0}M&quot;, crosshairElement.SeriesPoint.Value)
                If crosshairElement.SeriesPoint.Value &gt; 10 Then
                    crosshairElement.AxisLabelElement.Background = Brushes.Green
                    crosshairElement.LineElement.Brush = Brushes.Green
                Else
                    crosshairElement.AxisLabelElement.Background = Brushes.Orange
                    crosshairElement.LineElement.Brush = Brushes.Orange
                    crosshairElement.LineElement.LineStyle = New LineStyle With {
                        .Thickness = 1
                    }
                End If
            End If
        Next
    End If
End Sub
</code></pre></section>

Note

- [CrosshairElementGroup.IndicatorElements](/WPF/DevExpress.Xpf.Charts.CrosshairElementGroup.IndicatorElements) allows you to access indicator items when [CrosshairOptions.ContentShowMode](/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ContentShowMode) is **Label**.
- Use the [CustomDrawCrosshairEventArgs.CrosshairLegendElements](/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.CrosshairLegendElements) collection to access the crosshair items when [CrosshairOptions.ContentShowMode](/WPF/DevExpress.Xpf.Charts.CrosshairOptions.ContentShowMode) is **Legend**. For indicators, use [CustomDrawCrosshairEventArgs.IndicatorLegendElements](/WPF/DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs.IndicatorLegendElements).

### More Examples

- [How to: Custom Draw a Crosshair Cursor](/WPF/14544/controls-and-libraries/charts-suite/chart-control/examples/appearance-customization/how-to-custom-draw-a-crosshair-cursor)