views:

206

answers:

2

The following ToolTip code works in WPF.

I'm trying to get it to work in Silverlight.

But it gives me these errors:

TextBlock does not contain a definition for ToolTip.
Cursors does not contain a definition for Help.
ToolTipService does not contain a definition for SetInitialShowDelay.

How can I get this to work in Silverlight?

using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;

namespace TestHover29282
{
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();

            AddCustomer("Jim Smith");
            AddCustomer("Joe Jones");
            AddCustomer("Angie Jones");
            AddCustomer("Josh Smith");
        }

        void AddCustomer(string name)
        {
            TextBlock tb = new TextBlock();
            tb.Text = name;
            ToolTip tt = new ToolTip();
            tt.Content = "This is some info on " + name + ".";
            tb.ToolTip = tt;
            tt.Cursor = Cursors.Help;
            ToolTipService.SetInitialShowDelay(tb, 0);

            MainStackPanel.Children.Add(tb);
        }
    }
}
A: 

You can set the tooltip text for the TextBlock element by doing the following:

ToolTipService.SetToolTip(tb, "This is some info on " + name + ".");

You dont need a separate ToolTip object then. Although you could also do:

ToolTipService.SetToolTip(tb, tt);

to assign the tooltip object to the control, but this still doesn't solve your problem with the cursor.

EDIT Anthony's post explains that there is no help cursor in silverlight and no SetInitialShowDisplay.

Leom Burke
+2  A: 

Tooltips are added to Silverlight controls using an attached property provided by the ToolTipService. There is no SetInitialShowDelay in Silverlight's version nor is there a Help cursor on the Cursors type.

    void AddCustomer(string name)
    {
        TextBlock tb = new TextBlock();
        tb.Text = name;
        ToolTip tt = new ToolTip();
        tt.Content = "This is some info on " + name + ".";
        ToolTipService.SetToolTip(tb, tt);

        MainStackPanel.Children.Add(tb);
    }
AnthonyWJones