Silverlight自定义控件ToolTip每次都不显示

时间:2010-07-28 09:25:46

标签: silverlight custom-controls tooltip

在Silverlight应用程序中,我有一个带有许多自定义属性的自定义控件。在自定义控件的声明类中,除了将其属性定义为依赖属性之外,我定义了一个工具提示:

public override void OnApplyTemplate()
    {
        base.OnApplyTemplate();
        Border bordercntr = base.GetTemplateChild("PART_SBorder") as Border;
        bordercntr.MouseEnter += new MouseEventHandler(bordercntr_MouseEnter);
        bordercntr.MouseLeave += new MouseEventHandler(bordercntr_MouseLeave);

    }

    private void bordercntr_MouseEnter(object sender, MouseEventArgs e)
    {
       string _sno = this.SomeProperty.ToString();

       ToolTipService.SetToolTip(this, "Some text " + _sno);
       VisualStateManager.GoToState(this, "Hovered",false);                            
    }

问题是,工具提示弹出不是第一次鼠标指向自定义控件,而是仅在第二次之后弹出。重新加载页面后,这种情况再次发生:第一次将鼠标悬停在控件上时,没有显示任何内容,然后从第二次开始,并再次弹出工具提示。 (并不总是以稳定的方式,我的意思是每次鼠标悬停时不是100%)。

每次鼠标悬停在控件之上时,什么可以防止ToolTip以稳定的方式显示,并且在重新加载页面后第一次将鼠标悬停时显示?

1 个答案:

答案 0 :(得分:3)

ToolTip的设置器中设置SomeProperty您在ToolTipService中定义的工具提示将像普通工具提示一样,仅在鼠标悬停在控件上时才会显示。您根本不需要处理MouseEnterMouseLeave事件。