Udostępnij za pośrednictwem


Przegląd podpowiedzi

Podpowiedź to małe okno podręczne, które pojawia się, gdy użytkownik zatrzyma wskaźnik myszy nad elementem, na przykład nad Button. W tym temacie przedstawiono etykietkę narzędzia i omówiono sposób tworzenia i dostosowywania zawartości etykietki narzędzia.

Co to jest etykietka narzędzia

Gdy użytkownik przenosi wskaźnik myszy nad elementem zawierającym etykietkę narzędzia, zostanie wyświetlone okno zawierające zawartość etykietki narzędzia (na przykład zawartość tekstowa opisującą funkcję kontrolki) przez określony czas. Jeśli użytkownik przenosi wskaźnik myszy z dala od kontrolki, okno zniknie, ponieważ zawartość etykietki narzędzia nie może uzyskać fokusu.

Zawartość etykietki narzędzia może zawierać jeden lub więcej wierszy tekstu, obrazów, kształtów lub innej zawartości wizualnej. Etykietkę narzędzia dla kontrolki można zdefiniować, ustawiając jedną z następujących właściwości na zawartość etykietki narzędzia.

Która właściwość, której używasz, zależy od tego, czy kontrolka definiująca etykietkę narzędzia dziedziczy z klasy FrameworkContentElement, czy FrameworkElement.

Tworzenie etykietki narzędzia

W poniższym przykładzie pokazano, jak utworzyć prostą etykietkę narzędzia, ustawiając właściwość ToolTip dla kontrolki Button na ciąg tekstowy.

<Button ToolTip="Click to submit your information" 
        Click="SubmitCode" Height="20" Width="50">Submit</Button>

Etykietkę narzędzia można również zdefiniować jako obiekt ToolTip. W poniższym przykładzie użyto języka XAML do określenia obiektu ToolTip jako podpowiedzi elementu TextBox. Należy pamiętać, że w przykładzie określono ToolTip przez ustawienie właściwości 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>

W poniższym przykładzie użyto kodu do wygenerowania obiektu ToolTip. Przykład tworzy ToolTip (tt) i kojarzy go z 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)

Można również utworzyć zawartość etykietki narzędzia, która nie jest zdefiniowana jako obiekt ToolTip, otaczając zawartość etykietki narzędzia w elemecie układu, takim jak DockPanel. W poniższym przykładzie pokazano, jak ustawić właściwość ToolTip elementu TextBox na zawartość ujętą w kontrolce DockPanel.

<TextBox>
  ToolTip with image and text
  <TextBox.ToolTip>
       <StackPanel>
        <Image Source="data\flower.jpg"/>
        <TextBlock>Useful information goes here.</TextBlock>
      </StackPanel>
  </TextBox.ToolTip>

Używanie właściwości klas ToolTip i ToolTipService

Zawartość etykietki narzędzi można dostosować, ustawiając właściwości wizualne i stosując style. Jeśli zdefiniujesz zawartość etykietki narzędzia jako obiekt ToolTip, możesz ustawić właściwości wizualizacji obiektu ToolTip. W przeciwnym razie należy ustawić równoważne dołączone właściwości w klasie ToolTipService.

Aby zapoznać się z przykładem sposobu ustawiania właściwości w celu określenia położenia zawartości etykietki narzędzia przy użyciu właściwości ToolTip i ToolTipService, zobacz Położenie etykietki narzędzia.

Stylowanie etykietki narzędzia

Możesz stylować ToolTip, definiując niestandardowy Style. W poniższym przykładzie zdefiniowano Style o nazwie Simple, która pokazuje, jak zrównoważyć położenie ToolTip i zmienić jego wygląd, ustawiając Background, Foreground, FontSizei 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>

Używanie właściwości przedziału czasowego ToolTipService

Klasa ToolTipService udostępnia następujące właściwości umożliwiające ustawianie czasów wyświetlania podpowiedzi: InitialShowDelay, BetweenShowDelayi ShowDuration.

Użyj właściwości InitialShowDelay i ShowDuration, aby określić opóźnienie, zazwyczaj krótkie, przed wyświetleniem ToolTip, a także określić, jak długo ToolTip pozostaje widoczny. Aby uzyskać więcej informacji, zobacz Jak opóźnić wyświetlanie informacji narzędzia.

Właściwość BetweenShowDelay określa, czy etykietki narzędzi dla różnych kontrolek pojawiają się bez początkowego opóźnienia podczas szybkiego przesuwania wskaźnika myszy między nimi. Aby uzyskać więcej informacji na temat właściwości BetweenShowDelay, zobacz temat Użyj właściwości BetweenShowDelay.

W poniższym przykładzie pokazano, jak ustawić te właściwości dla etykietki narzędzia.

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

Zobacz też