在Silverlight2 RTW中,利用ToolTipService.ToolTip可以实现ToolTip(提示)效果,例如:
显示如图:

对于提示信息,同样可以使用Binding(特别是在ControlTemplate里常常使用Binding,例如ListBoxItem)。例如:
为了使ToolTip能够利用父级的DataContext进行绑定,在http://silverlight.net/forums/p/14241/46745.aspx#46745讨论了在Beta 1下修改ToolTip原代码的方法。目前我还没有找到Silverlight 2 RTW下对应的Controls完整示例代码,为此,我们可以用一个变通的方式来绕过这个问题。既然直接在ToolTipService.ToolTip="{Binding UserName}" 里能够成功绑定,为了实现复杂的提示信息,我们可以借助Converter来实现:
<local:Converter x:Name="myConverter" />
</UserControl.Resources>
<Grid DataContext="{StaticResource MyUser}">
<Button Width="100" Height="40" Content="Button" ToolTipService.ToolTip="{Binding UserName,Converter={StaticResource myConverter}}" />
</Grid>
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value != null)
{
var s = value.ToString();
TextBlock block = new TextBlock();
block.Text = s;
block.Style = (Style)Application.Current.Resources["MyTextBlockStyle"];
return block;
}
return null;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}