次の方法で共有


方法 : ToolTip を配置する

更新 : 2007 年 11 月

画面上でのツールヒントの位置を指定する方法を次の例に示します。

使用例

ツールヒントを配置するには、ToolTip クラスと ToolTipService クラスの両方で定義されている 5 つのプロパティのセットを使用します。これら 5 つのプロパティの 2 つのセットと、そのクラス別の参考資料へのリンクを次の表に示します。

クラス別の対応するツールヒント プロパティ

System.Windows.Controls.ToolTip クラスのプロパティ

System.Windows.Controls.ToolTipService クラスのプロパティ

ToolTip.Placement

ToolTipService.Placement

ToolTip.PlacementTarget

ToolTipService.PlacementTarget

ToolTip.PlacementRectangle

ToolTipService.PlacementRectangle

ToolTip.HorizontalOffset

ToolTipService.HorizontalOffset

ToolTip.VerticalOffset

ToolTipService.VerticalOffset

ツールヒントのコンテンツを ToolTip オブジェクトを使用して定義する場合は、どちらのクラスのプロパティも使用できます。ただし、ToolTipService のプロパティが優先されます。ToolTip オブジェクトとして定義されていないツールヒントには、ToolTipService のプロパティを使用してください。

これらのプロパティを使用してツールヒントを配置する方法を以下の図に示します。これらの図の Extensible Application Markup Language (XAML) の例では、ToolTip クラスで定義されるプロパティの設定方法を示していますが、ToolTipService クラスの対応する各プロパティも、同じレイアウト ルールに従います。Placement プロパティに使用できる値の詳細については、「ポップアップの配置動作」を参照してください。

Placement プロパティを使用して ToolTip を配置する

ツールヒント配置

Placement および PlacementRectangle プロパティを使用して ToolTip を配置する

配置四角形を使用したツールヒントの配置

Placement、PlacementRectangle、および Offset プロパティを使用して ToolTip を配置する

ツールヒント配置のダイアグラム

ToolTip のプロパティを使用して ToolTip オブジェクトをコンテンツとするツールヒントの位置を指定する方法を次の例に示します。

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

//Create an ellipse that will have a 
//ToolTip control. 
Ellipse ellipse1 = new Ellipse();
ellipse1.Height = 25;
ellipse1.Width = 50;
ellipse1.Fill = Brushes.Gray;
ellipse1.HorizontalAlignment = HorizontalAlignment.Left;

//Create a tooltip and set its position.
ToolTip tooltip = new ToolTip();
tooltip.Placement = PlacementMode.Right;
tooltip.PlacementRectangle = new Rect(50, 0, 0, 0);
tooltip.HorizontalOffset = 10;
tooltip.VerticalOffset = 20;

//Create BulletDecorator and set it
//as the tooltip content.
BulletDecorator bdec = new BulletDecorator();
Ellipse littleEllipse = new Ellipse();
littleEllipse.Height = 10;
littleEllipse.Width = 20;
littleEllipse.Fill = Brushes.Blue;
bdec.Bullet = littleEllipse;
TextBlock tipText = new TextBlock();
tipText.Text = "Uses the ToolTip class";
bdec.Child = tipText;
tooltip.Content = bdec;

//set tooltip on ellipse
ellipse1.ToolTip = tooltip;

ToolTipService のプロパティを使用して、コンテンツが ToolTip オブジェクトでないツールヒントの位置を指定する方法を次の例に示します。

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

//Create and Ellipse with the BulletDecorator as 
//the tooltip 
Ellipse ellipse2 = new Ellipse();
ellipse2.Name = "ellipse2";
this.RegisterName(ellipse2.Name, ellipse2);
ellipse2.Height = 25;
ellipse2.Width = 50;
ellipse2.Fill = Brushes.Gray;
ellipse2.HorizontalAlignment = HorizontalAlignment.Left;

//set tooltip timing
ToolTipService.SetInitialShowDelay(ellipse2, 1000);
ToolTipService.SetBetweenShowDelay(ellipse2, 2000);
ToolTipService.SetShowDuration(ellipse2, 7000);

//set tooltip placement

ToolTipService.SetPlacement(ellipse2, PlacementMode.Right);

ToolTipService.SetPlacementRectangle(ellipse2,
    new Rect(50, 0, 0, 0));

ToolTipService.SetHorizontalOffset(ellipse2, 10.0);

ToolTipService.SetVerticalOffset(ellipse2, 20.0);


ToolTipService.SetHasDropShadow(ellipse2, false);

ToolTipService.SetIsEnabled(ellipse2, true);

ToolTipService.SetShowOnDisabled(ellipse2, true);

ellipse2.AddHandler(ToolTipService.ToolTipOpeningEvent,
    new RoutedEventHandler(whenToolTipOpens));
ellipse2.AddHandler(ToolTipService.ToolTipClosingEvent,
    new RoutedEventHandler(whenToolTipCloses));

//define tooltip content
BulletDecorator bdec2 = new BulletDecorator();
Ellipse littleEllipse2 = new Ellipse();
littleEllipse2.Height = 10;
littleEllipse2.Width = 20;
littleEllipse2.Fill = Brushes.Blue;
bdec2.Bullet = littleEllipse2;
TextBlock tipText2 = new TextBlock();
tipText2.Text = "Uses the ToolTipService class";
bdec2.Child = tipText2;
ToolTipService.SetToolTip(ellipse2, bdec2);
stackPanel_1_2.Children.Add(ellipse2);

参照

処理手順

方法 : 無効化されているコントロールで ContextMenu を有効にする

概念

ToolTip の概要

参照

ToolTip

ToolTipService

その他の技術情報

ToolTip に関する「方法」トピック