ToolTip
A ToolTip
appears when the mouse hovers over a control. In WPF, we use the ToolTip
attribute and the ToolTipOpening
event to create ToolTips
.
This example markup has a Button
control—add this by dragging it from the Toolbox to the window, where it nests within the Grid
. Next add a ToolTip
attribute.
ToolTip
codeWith the ToolTip
attribute, we can set static
ToolTip
strings. The ToolTip
string
is displayed when the user hovers over the control.
ToolTipOpening
event handler. In the Button_ToolTipOpening
method, we dynamically set the content of the ToolTip
.Button_ToolTipOpening
, we cast the sender object to a Button
type. Then we set the ToolTip
of the Button
.ToolTip
is displayed. So we change its value right when needed.<Window x:Class="WpfApplication8.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <Grid> <Button Content="Button" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Width="75" ToolTip="Not shown" ToolTipOpening="Button_ToolTipOpening"/> </Grid> </Window>using System; using System.Windows; using System.Windows.Controls; namespace WpfApplication8 { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } 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(); } } }
Usually a ToolTip
is just a static
property—so just set the ToolTip
property in your XAML. Programs rarely need to set ToolTips
dynamically.
ToolTip
property, and only change it when needed in ToolTipOpening
(or another event handler).ToolTipClosing
This event occurs when the ToolTip
goes away. As with the ToolTipOpening
event handler, or any event handler, you can run arbitrary interface
code here.
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.