Поделиться через


Общие сведения о всплывающих подсказках

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

В этом разделе содержатся следующие подразделы.

  • Что такое всплывающие подсказки?
  • Создание всплывающей подсказки
  • Использование свойств классов ToolTip и ToolTipService
  • Стилизация всплывающей подсказки
  • Использование свойств временного интервала ToolTipService
  • Связанные разделы

Что такое всплывающие подсказки?

Когда пользователь перемещает указатель мыши на элемент, который имеет всплывающую подсказку, в течение указанного промежутка времени всплывает окно с содержимым подсказки (например, в содержимом текста описываются функции элемента управления). Если пользователь убирает указатель мыши с элемента управления, окно исчезает, так как содержимое подсказки не может получить фокус.

Содержимое подсказки может содержать одну или несколько строк текста, рисунки, фигуры или другое визуальное содержимое. Можно определить всплывающую подсказку для элемента управления настройкой одного из следующих свойств содержимого всплывающей подсказки.

Какое свойство используется, зависит от того, наследует ли элемент управления, определяющий подсказку, от класса FrameworkContentElement или FrameworkElement.

Создание всплывающей подсказки

В следующем примере представлены способы создания простых подсказок установкой свойства ToolTip элемента управления Button в значение строки.

<Button ToolTip="Click to submit your information" 
        Click="SubmitCode" Height="20" Width="50">Submit</Button>

Можно также определить подсказку как объект ToolTip. В следующем примере используется XAML для задания объекта ToolTip в качестве подсказки элемента TextBox. Обратите внимание, что в примере ToolTip задается установкой свойства FrameworkElement.ToolTip.

<TextBox HorizontalAlignment="Left">ToolTip with non-text content
  <TextBox.ToolTip>
    <ToolTip>
      <DockPanel Width="50" Height="70">
        <Image Source="data\flower.jpg"/>
        <TextBlock>Useful information goes here.</TextBlock>
      </DockPanel>
    </ToolTip>
  </TextBox.ToolTip>
</TextBox>

В следующем примере используется код для создания объекта ToolTip. В примере создается объект ToolTip (tt) и связывается с объектом Button.

button = New Button()
button.Content = "Hover over me."
tt = New ToolTip()
tt.Content = "Created with Visual Basic"
button.ToolTip = tt
cv2.Children.Add(button)
button = new Button();
button.Content = "Hover over me.";
tt = new ToolTip();
tt.Content = "Created with C#";
button.ToolTip = tt;
cv2.Children.Add(button);

Можно также создать содержимое подсказки, которая не определена как объект ToolTip, включив содержимое подсказки в макет элемента, например DockPanel. В следующем примере показано, как установить свойство ToolTip для содержимого TextBox, заключенного в элементе управления DockPanel.

<TextBox>
  ToolTip with image and text
  <TextBox.ToolTip>
       <StackPanel>
        <Image Source="data\flower.jpg"/>
        <TextBlock>Useful information goes here.</TextBlock>
      </StackPanel>
  </TextBox.ToolTip>

Использование свойств классов ToolTip и ToolTipService

Можно настроить содержимое подсказки, задав визуальные свойства и используя стили. Если определить содержимое подсказки как объект ToolTip, то можно установить визуальные свойства объекта ToolTip. В противном случае необходимо задать эквивалент вложенных свойств в классе ToolTipService.

Пример задания свойства в порядке указания содержимого подсказки с помощью ToolTip и ToolTipService см. в разделе Практическое руководство. Задание положения всплывающей подсказки.

Стилизация всплывающей подсказки

Можно стилизовать ToolTip путем определения пользовательского Style. В следующем примере определяется Style, названный Simple, и показано, как изменить расположение ToolTip и изменить его внешний вид, установив Background, Foreground FontSize и FontWeight.

<Style TargetType="ToolTip">
  <Setter Property = "HorizontalOffset" Value="10"/>
  <Setter Property = "VerticalOffset" Value="10"/>
  <Setter Property = "Background" Value="LightBlue"/>
  <Setter Property = "Foreground" Value="Purple"/>
  <Setter Property = "FontSize" Value="14"/>
  <Setter Property = "FontWeight" Value="Bold"/>
</Style>

Использование свойств временного интервала ToolTipService

ToolTipService класс предоставляет следующие свойства для задания времени отображения подсказки: InitialShowDelay, BetweenShowDelay, и ShowDuration.

Используйте InitialShowDelay иShowDuration свойства для указания задержки, как правило, короткой, перед появлением ToolTip, а так же для указания того, как долго ToolTip останется видимой. Дополнительные сведения см. в разделе Практическое руководство. Задержка отображения всплывающей подсказки.

Свойство BetweenShowDelay определяет, отображаются ли подсказки для различных элементов управления без начальной задержки при быстром перемещении указателя мыши между ними. Дополнительные сведения о свойстве BetweenShowDelay см. в разделе Практическое руководство. Использование свойства BetweenShowDelay.

В следующем примере показано, как настроить эти свойства для всплывающих подсказок.

      <Ellipse Height="25" Width="50" 
               Fill="Gray" 
               HorizontalAlignment="Left"
               ToolTipService.InitialShowDelay="1000"
               ToolTipService.ShowDuration="7000"
               ToolTipService.BetweenShowDelay="2000">
        <Ellipse.ToolTip>
          <ToolTip Placement="Right" 
                   PlacementRectangle="50,0,0,0"
                   HorizontalOffset="10" 
                   VerticalOffset="20"
                   HasDropShadow="false"
                   Opened="whenToolTipOpens"
                   Closed="whenToolTipCloses"
                   >
            <BulletDecorator>
              <BulletDecorator.Bullet>
                <Ellipse Height="10" Width="20" Fill="Blue"/>
              </BulletDecorator.Bullet>
              <TextBlock>Uses the ToolTip Class</TextBlock>
            </BulletDecorator>
          </ToolTip>
        </Ellipse.ToolTip>
      </Ellipse>

См. также

Ссылки

ToolTipService

ToolTip

ToolTipEventArgs

ToolTipEventHandler

Другие ресурсы

Разделы руководства по ToolTip