Всплывающая подсказка пользовательского элемента управления Silverlight не появляется каждый раз - PullRequest
1 голос
/ 28 июля 2010

В приложении 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% каждый раз, когда мышь зависает).

Что может помешать стабильному отображению всплывающей подсказки каждый раз, когда мышь наводит курсор на элемент управления, и начинает отображаться с самого первого раза при наведении курсора мыши после перезагрузки страницы?

1 Ответ

3 голосов
/ 28 июля 2010

Установите ToolTip в установщике для SomeProperty Всплывающая подсказка, которую вы определяете в ToolTipService, будет вести себя как обычная всплывающая подсказка и появится, только когда мышь находится над элементом управления. Вам вообще не нужно обрабатывать события MouseEnter и MouseLeave.

...