Condividi tramite


Procedura: posizionare un oggetto ToolTip

In questo esempio viene illustrato come specificare la posizione di una descrizione comandi sullo schermo.

Esempio

È possibile posizionare una descrizione comandi utilizzando un insieme di cinque proprietà definite sia nella classe ToolTip sia nella classe ToolTipService. Nella tabella seguente sono riportati questi due insiemi di cinque proprietà e vengono forniti i collegamenti alla relativa documentazione di riferimento in base alla classe.

Proprietà delle descrizioni comandi corrispondenti in base alla classe

Proprietà della classe System.Windows.Controls.ToolTip

Proprietà della classe System.Windows.Controls.ToolTipService

ToolTip.Placement

ToolTipService.Placement

ToolTip.PlacementTarget

ToolTipService.PlacementTarget

ToolTip.PlacementRectangle

ToolTipService.PlacementRectangle

ToolTip.HorizontalOffset

ToolTipService.HorizontalOffset

ToolTip.VerticalOffset

ToolTipService.VerticalOffset

Se si definisce il contenuto di una descrizione comandi utilizzando un oggetto ToolTip, è possibile utilizzare le proprietà di una delle due classi. Tuttavia le proprietà della classe ToolTipService hanno la precedenza. Utilizzare le proprietà della classe ToolTipService per le descrizioni comandi che non sono definite come oggetti ToolTip.

Nelle illustrazioni seguenti viene mostrato come posizionare una descrizione comandi utilizzando queste proprietà. Anche se negli esempi di Extensible Application Markup Language (XAML) di queste illustrazioni viene mostrato come impostare le proprietà definite dalla classe ToolTip, le proprietà corrispondenti della classe ToolTipService seguono le stesse regole di layout. Per ulteriori informazioni sui possibili valori della proprietà Placement, vedere Comportamento del controllo Popup in relazione al posizionamento.

Posizionamento dell'oggetto ToolTip tramite la proprietà Placement

Posizionamento di ToolTip

Posizionamento dell'oggetto ToolTip tramite le proprietà Placement e PlacementRectangle

Posizionamento di ToolTip mediante un rettangolo di posizionamento

Posizionamento dell'oggetto ToolTip tramite le proprietà Placement, PlacementRectangle e Offset

Diagramma di posizionamento di ToolTip

Nell'esempio seguente viene illustrato come utilizzare le proprietà della classe ToolTip per specificare la posizione di una descrizione comandi il cui contenuto è un oggetto 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. 
            Dim ellipse1 As New Ellipse()
            ellipse1.Height = 25
            ellipse1.Width = 50
            ellipse1.Fill = Brushes.Gray
            ellipse1.HorizontalAlignment = HorizontalAlignment.Left

            'Create a tooltip and set its position.
            Dim tooltip As 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.
            Dim bdec As New BulletDecorator()
            Dim littleEllipse As New Ellipse()
            littleEllipse.Height = 10
            littleEllipse.Width = 20
            littleEllipse.Fill = Brushes.Blue
            bdec.Bullet = littleEllipse
            Dim tipText As New TextBlock()
            tipText.Text = "Uses the ToolTip class"
            bdec.Child = tipText
            tooltip.Content = bdec

            'set tooltip on ellipse
            ellipse1.ToolTip = tooltip
//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;

Nell'esempio seguente viene illustrato come utilizzare le proprietà della classe ToolTipService per specificare la posizione di una descrizione comandi il cui contenuto non è un oggetto 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 
            Dim ellipse2 As New Ellipse()
            ellipse2.Name = "ellipse2"
            Me.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(AddressOf whenToolTipOpens))
            ellipse2.AddHandler(ToolTipService.ToolTipClosingEvent, New RoutedEventHandler(AddressOf whenToolTipCloses))

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

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

Vedere anche

Attività

How to: Enable a ContextMenu on a Disabled Control

Riferimenti

ToolTip

ToolTipService

Concetti

Panoramica sul controllo ToolTip

Altre risorse

Argomenti sulle procedure relative alle descrizioni comando