Share via


工具提示概觀

工具提示是一個小型快顯視窗,當使用者將滑鼠指標暫停至專案上方時,會出現,例如在 上方 Button 。 本主題將介紹工具提示,並說明如何建立及自訂工具提示內容。

什麼是工具提示

當使用者將滑鼠指標移到有工具提示的元素上時,包含工具提示內容 (例如,描述控制項功能的文字內容) 的視窗會出現並持續一段指定的時間。 如果使用者將滑鼠指標移離控制項,由於工具提示內容無法接收焦點,視窗便會消失。

工具提示的內容可包含一或多個文字行、影像、圖形或其他視覺內容。 您可以將下列其中一個屬性設為工具提示內容來定義控制項的工具提示。

您使用的屬性取決於定義工具提示的控制項是否繼承自 FrameworkContentElementFrameworkElement 類別。

建立 ToolTip

下列範例示範如何將 控制項的 Button 屬性設定 ToolTip 為文字字串,以建立簡單的工具提示。

<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)

您也可以將工具提示內容括在版面配置元素中,例如 DockPanel ,來建立未定義為 ToolTip 物件的工具提示內容。 下列範例示範如何將 的 TextBox 屬性設定 ToolTip 為 包含在 控制項中 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 設定對等的附加屬性。

如需如何使用 和 ToolTipService 屬性來設定屬性以指定工具提示內容 ToolTip 位置的範例,請參閱 放置工具提示

設定 ToolTip 樣式

您可以藉由定義自訂 Style 來設定 樣式 ToolTip 。 下列範例會 Style 定義 名為 Simple 的 ,示範如何藉由設定 BackgroundForegroundFontSizeFontWeight 來位移 位置 ToolTip ,並變更其外觀。

<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 提供下列屬性,讓您設定工具提示顯示時間: InitialShowDelayBetweenShowDelayShowDuration

InitialShowDelay使用 和 ShowDuration 屬性來指定延遲,通常是短暫的,在出現之前 ToolTip ,也指定保持可見的時間 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>

另請參閱