Back to Devexpress

ToolTipController.HtmlTemplate Property

windowsforms-devexpress-dot-utils-dot-tooltipcontroller-344a0238.md

latest6.3 KB
Original Source

ToolTipController.HtmlTemplate Property

An HTML & CSS template applied to regular hints and Super Tooltips of controls whose tooltips are managed by this ToolTipController.

Namespace : DevExpress.Utils

Assembly : DevExpress.Utils.v25.2.dll

NuGet Packages : DevExpress.Utils, DevExpress.Wpf.Core

Declaration

csharp
[DXCategory("Layout")]
public HtmlTemplate HtmlTemplate { get; }
vb
<DXCategory("Layout")>
Public ReadOnly Property HtmlTemplate As HtmlTemplate

Property Value

TypeDescription
HtmlTemplate

The template applied to control tooltips.

|

Remarks

The layout of tooltip design depends on whether your controls display Regular Tooltips, Super Tooltips, or both. HTML templates are used when the ToolTipController.ToolTipType property is set to either “Default” or “Html”.

You can store various tooltip templates in the HtmlTemplateCollection component.

csharp
toolTipController1.HtmlTemplate.Assign(htmlTemplateCollection1[4]);
vb
toolTipController1.HtmlTemplate.Assign(htmlTemplateCollection1[4])

Regular Tooltips

Run Demo

A regular tooltip uses a maximum of three content blocks:

  • Title (the value of the ToolTipTitle property)
  • Main text (the value of the ToolTip property)
  • Image (one of the built-in images selected according to the ToolTipIconType property value)

The sample markup below arranges all three possible blocks in a column. Note that the img element utilizes the dx-class property that selects a required style depending on whether or not this tooltip has an image (the HasImage property value).

html
<div class="container">
    
    <div class="item title">${Title}</div>
    <div class="item text">${ToolTip}</div>
</div>
css
body{ 
    padding: 5px;
    font-family: 'Segoe UI';
}
.container {
    padding: 5px;
    background-color: @Window;
    border: 1px solid @HighlightAlternate/0.6;
    box-shadow: 0px 0px 5px 0px @WindowText/0.2;
    border-radius: 10px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 120px;
}
.item {
    margin: 2px;
    white-space: pre-line;
    color: @WindowText;
}
.title {    
    font-weight: bold;
    font-size: 12px;
}
.text {
    color: @WindowText;
    font-size: 11px;
}

.tooltip-image {
    height: 36px;
    width: 36px;
}

.hidden { display: none; }

Super Tooltips

Run Demo

Super Tooltips are built with the following elements:

Since a Super Tooltip can have any number of these elements, create a unified template that can be used with any tooltip element (the dx-class property allows you to display only required HTML blocks), and utilize the dx-collection tag to reuse this unified template for all tooltip elements.

html
<!--Sub-template that can be used with any Super Tooltip element-->
<template id="item-container">
  <div dx-class="{IsSeparator: hidden-element }">
    <div class="item" dx-class="{VAlignment}">
      <div dx-class="{HasImage: , hidden-element }">
        
      </div>
      <div class="text" dx-class="{ItemType}">${Text}</div>
    </div>
  </div>
  <div class="separator" dx-class="{IsSeparator: , hidden-element }"></div>
</template>

<!--The template that applies the "item-container" sub-template to all Super Tooltip elements-->
<div class="container">
    <dx-collection Items="${Items}" ItemTemplate="item-container"></dx-collection>
</div>
css
body{ 
    padding: 10px;
    font-family: 'Segoe UI';
}
.container {
    padding: 10px;
    background-color: @ControlText/0.95;
    border: 1px solid @ControlText/0.6;
    box-shadow: 3px 3px 7px 0px rgba(0, 0, 0, 0.4);
    border-radius: 4px;
}
.item {
    display: flex;
    margin: 4px;
}
.image {
    margin: 2px 2px 2px 6px;
    fill: @Control;
}
.image-small {
    width: 16px;
    height: 16px;   
}
.image-large {
    width: 24px;
    height: 24px;   
}
.image-custom{
    width: auto;
    height: auto;
}
.text {
    font-size: 14px;
    margin: 0px 5px;
    color: @Control;
}
.separator {
    height: 1px;
    background-color: @Control/0.4;
    margin: 4px 8px;
}
.hidden-element { display: none; }
.Title { font-weight: bold; }
.Default { align-items: flex-start; }
.Top { align-items: flex-start; }
.Center { align-items: center; }
.Bottom { align-items: flex-end; }

In addition to the HasImage property used in the sample template for regular hints, the sample above also utilizes the IsSeparator property to identify whether or not the current Super Tooltip element is a separator.

See Also

ToolTipController Class

ToolTipController Members

DevExpress.Utils Namespace