Home | Contact Us

CSharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript

WPF ToolTip Example

This WPF example uses the ToolTip attribute and the ToolTipOpening event. It has an example screenshot.

ToolTip. A ToolTip appears when the mouse hovers over a control.

It is meant to provide information about the control. In WPF, we use the ToolTip attribute and the ToolTipOpening event to create ToolTips.

Based on:

.NET 4.5.1

Example. This example markup has a Button control. You can add this by dragging it from the Toolbox to the window, where it nests within the Grid. I added a ToolTip attribute. With this attribute, we can set static ToolTip strings.


And: The ToolTip string is displayed when the user hovers over the control. Many controls, not just buttons, can have ToolTips.

Also, I added the ToolTipOpening event handler. In the Button_ToolTipOpening method, we dynamically set the content of the ToolTip. This example shows a dynamically-set ToolTip value.

Example markup: XAML

<Window x:Class="WpfApplication8.MainWindow"
	Title="MainWindow" Height="350" Width="525">
	<Button Content="Button" HorizontalAlignment="Left" Margin="10,10,0,0"
		VerticalAlignment="Top" Width="75"
		ToolTip="Not shown"

Example code: C#

using System;
using System.Windows;
using System.Windows.Controls;

namespace WpfApplication8
    public partial class MainWindow : Window
	public MainWindow()

	private void Button_ToolTipOpening(object sender, ToolTipEventArgs e)
	    // ... Set ToolTip on Button before it is shown.
	    Button b = sender as Button;
	    b.ToolTip = DateTime.Now.ToShortTimeString();

In Button_ToolTipOpening, we cast the sender object to a Button type. Then we set the ToolTip of the Button. The opening event occurs right before the ToolTip is displayed. So we change its value right when needed.

Tip: We use the DateTime.Now property, and the ToShortTimeString method, to get the current time.

DateTime.NowDateTime Format

Discussion. The example does not show this, but usually a ToolTip is just a static property. So just set the ToolTip property in your XAML. Programs less often need to set ToolTips dynamically.

Note: A program can use a default ToolTip property, and only change it when needed in ToolTipOpening (or another event handler).

Also, a ToolTipClosing event is available. This occurs (obviously) when the ToolTip goes away. As with the ToolTipOpening event handler, or any event handler, you can run arbitrary interface code here.


Summary. They are an essential part of many interfaces. And ToolTips in WPF are easy to add, change, and even manipulate in a dynamic way with C# code. There is more complexity to them than shown here, but this example covers the basics.