Skip to main content
All docs
V25.1
  • HeatmapHitInfo Class

    Contains information about a specific point within a heatmap.

    Namespace: DevExpress.Xpf.Charts.Heatmap

    Assembly: DevExpress.Xpf.Charts.v25.1.dll

    NuGet Package: DevExpress.Wpf.Charts

    Declaration

    public class HeatmapHitInfo :
        HitInfoBase

    The following members return HeatmapHitInfo objects:

    Remarks

    HeatmapHitInfo objects are created when you call the HeatmapControl.CalcHitInfo method to obtain information about a specific point within the heatmap. This method requires you to pass a test point or its coordinates as a parameter.

    The HeatmapHitInfo class properties can be grouped into the following categories:

    • The properties that indicate whether the test point resides over a particular view element. For instance, the InHeatmapCell property indicates whether the test point is over the heatmap heatmap cell or not;
    • The properties that return heatmap elements themselves (for example, the HeatmapCell property).

    Example

    The following example shows how to determine what a heatmap element is in a test point and how to collect information related to this element.

    A heatmap cell is hit-tested.

    Call the HeatmapControl.CalcHitInfo method to obtain information about a specific point within the Heatmap Control. This method returns a HeatmapHitInfo object that contains information related to heatmap elements positioned in the test point.

    <Window xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"  
            xmlns:dxc="http://schemas.devexpress.com/winfx/2008/xaml/charts"
            xmlns:dxh="http://schemas.devexpress.com/winfx/2008/xaml/heatmap"
            x:Class="HeatmapChart.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:HeatmapChart" 
            xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
            mc:Ignorable="d"
            dx:ThemeManager.ThemeName="Office2019Colorful"
            Title="MainWindow" Height="410" Width="728">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="130"/>
                <ColumnDefinition Width="*" />
            </Grid.ColumnDefinitions>
            <dxe:TextEdit Grid.Column="0" x:Name="textEdit" TextWrapping="Wrap" 
                          VerticalContentAlignment="Top" BorderBrush="Transparent"/>
            <dxh:HeatmapControl x:Name="heatmapControl" 
                                Grid.Column="1"
                                ToolTipEnabled="True" Margin="10" 
                                MouseMove="heatmapControl_MouseMove">
                <dxh:HeatmapControl.DataContext>
                    <local:MatrixHeatmapViewModel />
                </dxh:HeatmapControl.DataContext>
                <dxh:HeatmapControl.DataAdapter>
                    <dxh:HeatmapMatrixAdapter XArguments="{Binding XArguments}" 
                                              YArguments="{Binding YArguments}" 
                                              Values="{Binding Values}" />
                </dxh:HeatmapControl.DataAdapter>
                <dxh:HeatmapControl.ColorProvider>
                    <!--...-->
                </dxh:HeatmapControl.ColorProvider>
                <dxh:HeatmapControl.Legend>
                    <dxh:HeatmapLegend Margin="0, 0, 4, 10" Visible="True">
                        <dxh:HeatmapLegend.Title>
                            <dxc:LegendTitle Content="Revenue" />
                        </dxh:HeatmapLegend.Title>
                    </dxh:HeatmapLegend>
                </dxh:HeatmapControl.Legend>
                <dxh:HeatmapControl.AxisX>
                    <dxh:HeatmapAxis x:Name="xAxis" Reverse="True" Alignment="Near" 
                                     AutoGrid="False" GridSpacing="1">
                        <dxh:HeatmapAxis.Title>
                            <dxc:AxisTitle Content="Region" Visibility="Visible"/>
                        </dxh:HeatmapAxis.Title>
                        <dxh:HeatmapAxis.Label>
                            <dxc:AxisLabel x:Name="xAxisLabel"/>
                        </dxh:HeatmapAxis.Label>
                    </dxh:HeatmapAxis>
                </dxh:HeatmapControl.AxisX>
                <dxh:HeatmapControl.AxisY>
                    <dxh:HeatmapAxis x:Name="yAxis" Reverse="True" Alignment="Near">
                        <dxh:HeatmapAxis.Title>
                            <dxc:AxisTitle Content="Product Category" Visibility="Visible"/>
                        </dxh:HeatmapAxis.Title>
                        <dxh:HeatmapAxis.Label>
                            <dxc:AxisLabel x:Name="yAxisLabel"/>
                        </dxh:HeatmapAxis.Label>
                    </dxh:HeatmapAxis>
                </dxh:HeatmapControl.AxisY>
                <dxh:HeatmapControl.Label>
                    <dxh:HeatmapLabel Foreground="Black" 
                                      Background="#70ffffff" 
                                      Padding="2" 
                                      TextOrientation="Horizontal"
                                      TextPattern="${V}M"/>
                </dxh:HeatmapControl.Label>
            </dxh:HeatmapControl>
        </Grid>
    </Window>
    
    using DevExpress.Xpf.Charts;
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Windows;
    using System.Windows.Input;
    
    namespace HeatmapChart {
        public partial class MainWindow : Window {
            public MainWindow() {
                InitializeComponent();
            }
    
            private void heatmapControl_MouseMove(object sender, MouseEventArgs e) {
                // Obtain hit information under the test point.
                HeatmapHitInfo hitInfo = heatmapControl.CalcHitInfo(e.GetPosition(heatmapControl));
                StringBuilder builder = new StringBuilder();
    
                if (hitInfo.InAxis) builder.AppendLine($"In axis:");
                if (hitInfo.AxisLabel != null)
                    builder.AppendLine($"Label: {hitInfo.AxisLabel.Name}");
                if (hitInfo.AxisTitle != null)
                    builder.AppendLine($"Axis title: {hitInfo.AxisTitle.Content}");
                if (hitInfo.InHeatmapCell)
                    builder.AppendLine($"In cell:{Environment.NewLine}X ({hitInfo.HeatmapCell.XArgument}),{Environment.NewLine}Y ({hitInfo.HeatmapCell.YArgument})");
                if (hitInfo.InLegend)
                    builder.AppendLine($"In legend");
    
                // Show hit-testing results.
                if (builder.Length > 0)
                    textEdit.Text = string.Format($"Hit-testing results:{Environment.NewLine}{builder}");
                else
                    textEdit.Text = "Move the mouse pointer over the heatmap to see information on hovered heatmap elements.";
            }
        }
        public class MatrixHeatmapViewModel {
            public string[] XArguments { get; set; }
            public string[] YArguments { get; set; }
            public double[,] Values { get; set; }
            public MatrixHeatmapViewModel() {
                XArguments = new string[] { "North", "South", "West", "East", "Central" };
                YArguments = new string[] { "Accessories", "Bikes", "Clothing", "Components" };
                Values = new double[,] {
                   { 214.3, 530.1, 630.2, 854.4, 313.4 },
                   { 321.3, 514.4, 281.3, 533.4, 541.9 },
                   { 604.3, 429.1, 632.6, 438.4, 265.4 },
                   { 485.3, 544.7, 740.3, 661.4, 516.6 }
                };
            }
        }
    }
    

    Inheritance

    Object
    HitInfoBase
    HeatmapHitInfo
    See Also