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


Обзор подсказки

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

Что такое подсказка

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

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

От используемого свойства зависит то, наследуется ли элемент управления, определяющий подсказку, от класса 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 C#";
button.ToolTip = tt;
cv2.Children.Add(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)

Вы также можете создать содержимое подсказки, которое не определено как объект 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>

См. также