次の方法で共有


ツールヒントの概要

ツールチップは、ユーザーが要素の上にマウスポインターを置いたときに表示される小さなポップアップウィンドウです。例えば、Buttonの上などに表示されます。 このトピックでは、ツールヒントについて説明し、ツールヒントのコンテンツを作成およびカスタマイズする方法について説明します。

ツールチップとは

ユーザーがツールヒントを持つ要素の上にマウス ポインターを移動すると、指定した時間、ツールヒントの内容 (たとえば、コントロールの機能を説明するテキスト コンテンツ) を含むウィンドウが表示されます。 ユーザーがマウス ポインターをコントロールから離すと、ツールヒントのコンテンツがフォーカスを受け取ることができないため、ウィンドウが消えます。

ヒントの内容には、1 行以上のテキスト、画像、図形、またはその他のビジュアル コンテンツを含めることができます。 コントロールのツールヒントを定義するには、次のいずれかのプロパティをツールヒントコンテンツに設定します。

使用するプロパティは、ツールヒントを定義するコントロールが 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オブジェクトとして定義されていないツールヒントコンテンツを作成することもできます。 次の例は、ToolTipTextBox プロパティを、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の配置をオフセットし、SimpleToolTipBackground、および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 クラスには、ツールヒントの表示時間 (InitialShowDelayBetweenShowDelayShowDuration) を設定するためのプロパティが用意されています。

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>

こちらも参照ください