共用方式為


工具提示概觀

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

什麼是工具提示

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

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

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

建立 ToolTip

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

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

您也可以將工具提示定義為 ToolTip 物件。 下列範例會使用 XAML 將 ToolTip 物件指定為 TextBox 元素的工具提示。 請注意,此範例會藉由設定 FrameworkElement.ToolTip 屬性來指定 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) 之中。 下列範例示範如何將 TextBoxToolTip 屬性設定為包含在 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 類別上設定對等的附加屬性。

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

設定 ToolTip 樣式

您可以藉由定義自訂 Style 來設定 ToolTip 樣式。 下列範例會定義稱為 SimpleStyle,示範如何藉由設定 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

使用 InitialShowDelayShowDuration 屬性來指定出現 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>

另請參閱