Freigeben über


Gewusst wie: Positionieren einer QuickInfo

Aktualisiert: November 2007

In diesem Beispiel wird gezeigt, wie die Position eines QuickInfos auf dem Bildschirm angegeben wird.

Beispiel

Sie können ein QuickInfo mithilfe eines Satzes aus fünf Eigenschaften positionieren, die in den Klassen ToolTip und ToolTipService definiert sind. In der folgenden Tabelle werden diese beiden Sätze von je fünf Eigenschaften mit Links zu den jeweils zugehörigen Referenzdokumentationen nach Klassen geordnet aufgeführt.

Zugehörige QuickInfo-Eigenschaften nach Klasse geordnet

System.Windows.Controls.ToolTip-Klasseneigenschaften

System.Windows.Controls.ToolTipService-Klasseneigenschaften

ToolTip.Placement

ToolTipService.Placement

ToolTip.PlacementTarget

ToolTipService.PlacementTarget

ToolTip.PlacementRectangle

ToolTipService.PlacementRectangle

ToolTip.HorizontalOffset

ToolTipService.HorizontalOffset

ToolTip.VerticalOffset

ToolTipService.VerticalOffset

Wenn Sie den Inhalt eines QuickInfos mithilfe eines ToolTip -Objekts definieren, können Sie die Eigenschaften beider Klassen verwenden. Die ToolTipService-Eigenschaften haben jedoch Vorrang. Verwenden Sie die ToolTipService-Eigenschaften für QuickInfos, die nicht als ToolTip-Objekte definiert sind.

Die folgenden Darstellungen zeigen, wie ein QuickInfo mithilfe dieser Eigenschaften positioniert wird. Obwohl in den Extensible Application Markup Language (XAML)-Beispielen dieser Darstellungen gezeigt wird, wie die Eigenschaften festgelegt werden, die durch die ToolTip-Klasse definiert sind, folgen die entsprechenden Eigenschaften der ToolTipService-Klasse denselben Layoutregeln. Weitere Informationen zu den möglichen Werten für die Placement-Eigenschaft finden Sie unter Verhalten beim Platzieren von Popups.

QuickInfo-Platzierung mithilfe der Placement-Eigenschaft

QuickInfo-Platzierung

QuickInfo-Platzierung mithilfe der Eigenschaften Placement und PlacementRectangle

Platzieren einer QuickInfo mithilfe eines Platzierungsrechtecks

QuickInfo-Platzierung mithilfe der Eigenschaften Placement, PlacementRectangle und Offset

QuickInfo-Platzierungsdiagramm

Im folgenden Beispiel wird dargestellt, wie mithilfe der ToolTip-Eigenschaften die Position eines QuickInfos angegeben wird, dessen Inhalt ein ToolTip-Objekt ist.

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

Im folgenden Beispiel wird dargestellt, wie mithilfe der ToolTipService-Eigenschaften die Position eines QuickInfos angegeben wird, dessen Inhalt kein ToolTip-Objekt ist.

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

Siehe auch

Aufgaben

Gewusst wie: Aktivieren von ContextMenu in einem deaktivierten Steuerelement

Konzepte

Übersicht über die QuickInfo

Referenz

ToolTip

ToolTipService

Weitere Ressourcen

QuickInfo-Hilfethemen