This documentation is archived and is not being maintained.

ToolTipService.HorizontalOffset Attached Property

Gets or sets the offset from the left of the area that is specified for the tooltip by the PlacementRectangle and PlacementTarget properties.

Namespace: System.Windows.Controls
Assembly: PresentationFramework (in PresentationFramework.dll)
XML Namespace:  http://schemas.microsoft.com/winfx/2006/xaml/presentation

See ToolTipService.GetHorizontalOffset, ToolTipService.SetHorizontalOffset
See ToolTipService.GetHorizontalOffset, ToolTipService.SetHorizontalOffset
See ToolTipService.GetHorizontalOffset, ToolTipService.SetHorizontalOffset
<object HorizontalOffset="double"/>
- or -
<object HorizontalOffset="qualifiedDouble"/>
 double  A string representation of a Double value that is equal to or greater than 0.0 but that is smaller than PositiveInfinity. This is interpreted as a device-independent unit (1/96th of an inch per unit) measurement. Strings do not have to explicitly include decimal points.   qualifiedDouble  A double value that is followed by one of these unit declaration strings: px, in, cm, pt.  px (default) is device-independent units (1/96th inch per unit)  in is inches; 1in==96px  cm is centimeters; 1cm==(96/2.54) px  pt is points; 1pt==(96/72) px 

Property Value

A value that specifies a horizontal distance. The default value is zero (0).

Identifier field

HorizontalOffsetProperty

Metadata properties set to true

None

The HorizontalOffset property and the VerticalOffset property values provide additional adjustment to the position of a tooltip that is defined by the PlacementTarget property and the PlacementRectangle property values.

This example shows how to specify the position of a tooltip on the screen.

You can position a tooltip by using a set of five properties that are defined in both the ToolTip and ToolTipService classes. The following table shows these two sets of five properties and provides links to their reference documentation according to class.

Corresponding tooltip properties according to class

System.Windows.Controls.ToolTip class properties

System.Windows.Controls.ToolTipService class properties

ToolTip.Placement

ToolTipService.Placement

ToolTip.PlacementTarget

ToolTipService.PlacementTarget

ToolTip.PlacementRectangle

ToolTipService.PlacementRectangle

ToolTip.HorizontalOffset

ToolTipService.HorizontalOffset

ToolTip.VerticalOffset

ToolTipService.VerticalOffset

If you define the contents of a tooltip by using a ToolTip object, you can use the properties of either class; however, the ToolTipService properties take precedence. Use the ToolTipService properties for tooltips that are not defined as ToolTip objects.

The following illustrations show how to position a tooltip by using these properties. Although, the Extensible Application Markup Language (XAML) examples in these illustrations show how to set the properties that are defined by the ToolTip class, the corresponding properties of the ToolTipService class follow the same layout rules. For more information about the possible values for the Placement property, see How to: Use the PlacementMode Enumeration to set Placement.

ToolTip placement by using the Placement property


ToolTip placement

ToolTip placement by using the Placement and PlacementRectangle properties


ToolTip placement by using the Placement, PlacementRectangle, and Offset properties


ToolTip placement diagram

The following example shows how to use the ToolTip properties to specify the position of a tooltip whose content is a ToolTip object.

<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 with a tooltip that is a 
//ToolTip control 
Ellipse ellipse1 = new Ellipse();
ellipse1.Height = 25;
ellipse1.Width = 50;
ellipse1.Fill = Brushes.Gray;
ellipse1.HorizontalAlignment = HorizontalAlignment.Left;

//set tooltip timing 

ToolTipService.SetInitialShowDelay(ellipse1, 1000);

ToolTipService.SetBetweenShowDelay(ellipse1, 2000);

ToolTipService.SetShowDuration(ellipse1, 7000);


//set tooltip placement
ToolTip tooltip = new ToolTip();
tooltip.Placement = PlacementMode.Right;
tooltip.PlacementRectangle = new Rect(50, 0, 0, 0);
tooltip.HorizontalOffset = 10;
tooltip.VerticalOffset = 20;

//set drop shadow effect
tooltip.HasDropShadow = false;


//Create BulletDecorator as 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 event handlers for the Opened and Closed events
tooltip.Opened +=
  new RoutedEventHandler(whenToolTipOpens);
tooltip.Closed +=
  new RoutedEventHandler(whenToolTipCloses);

//set tooltip on ellipse
ellipse1.ToolTip = tooltip;
stackPanel_1_1.Children.Add(ellipse1);

The following example shows how to use the ToolTipService properties to specify the position of a tooltip whose content is not a ToolTip object.

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


For the complete sample, see ToolTipService Sample.

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

Show: