ToolTipService – ovládání tooltipu ve WPF


Třída FrameworkElement poskytuje vlastnost ToolTip, které stačí přiřadit libovolný objekt a ten se bude zobrazovat. Protože tato vlastnost pracuje s typem object, je možné přiřadit jednoduchý tooltip, jako je string, ale i podstatně složitější tooltip.

To je sice velká výhoda, ale není možné přímočaře měnit například pozici takového tooltipu. Pro přiklad použiju nejjednodušší možný tooltip:

this.ToolTip = "Text tooltipu";

Takovýto tooltip má nějaké standardní chování – zobrazí se na pozici pod kurzorem myši, zobrazí se po určité době, kdy je kurzor nad elementem a po určité době zase zmizí (5 sekund).

Všechny tyto vlastnosti můžeme chtít změnit, ale ani vlastnost ToolTip (je typu object) a samozřejmě ani string nemají žádné vlastnosti, ani metody pro změnu tohoto chování.

Existuje ale statická třída ToolTipService, která funguje právě tak, jak bychom si představovali. Umožňuje ovládat tooltip přiřazený objektu. Vlastnosti tooltipu se nastavují pomocí statických metod, které přebírají objekt s tooltipem a hodnotu.

Například tedy chceme změnit dobu, po které se tooltip objeví a dobu, po které zmizí tak, aby se zobrazil prakticky okamžitě a zmizel až po delší době. Ve skutečnosti takovýto požadavek asi nebude, ale pro naznačení principu práce s touto třídou to poslouží dobře. Hodnoty jsou v milisekundách.

ToolTipService.SetInitialShowDelay(this, 100);
ToolTipService.SetShowDuration(this, 10000);

Pro bližší popis této třídy a popis všech možností, které se s tooltipem dají dělat, viz třída ToolTipService na MSDN.

, , ,

Komentáře jsou uzavřeny.