2009-12-03 13 views
8

Ich möchte Blase des Textes erscheinen, wenn die Maus über eine TextBlock.Wie kann ich eine Hover-Info-Blase bei mouseover in WPF erscheinen lassen?

Die folgenden Code ist die nächste, die ich bekommen kann, aber es fügt nur Text in TextBox.Text selbst und ändert die Farbe. Ich möchte ein z. Border/StackPanel/TextBlock über dem ursprünglichen Textblock schwebt auf einer anderen Ebene während mouseover.

Wie kann ich ein Hover-Panel ähnlich einem Web-Erlebnis mit der acronym tag machen?

using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Input; 
using System.Windows.Media; 

namespace TestHover29282 
{ 
    public partial class Window1 : Window 
    { 
     public Window1() 
     { 
      InitializeComponent(); 

      TextBlock tb = new TextBlock(); 
      tb.Text = "test"; 

      tb.MouseEnter += new MouseEventHandler(tb_MouseEnter); 
      tb.MouseLeave += new MouseEventHandler(tb_MouseLeave); 

      MainStackPanel.Children.Add(tb); 
     } 

     void tb_MouseLeave(object sender, MouseEventArgs e) 
     { 
      TextBlock tb = sender as TextBlock; 
      tb.Background = new SolidColorBrush(Colors.Transparent); 
      tb.Text = "test"; 
     } 

     void tb_MouseEnter(object sender, MouseEventArgs e) 
     { 
      TextBlock tb = sender as TextBlock; 
      tb.Background = new SolidColorBrush(Colors.Orange); 
      tb.Text += " - this should be in a popup bubble."; 
     } 

    } 
} 

Antwort

35

paar Möglichkeiten, wie Sie es tun, könnte man eine Werkzeugspitze mit einem benutzerdefinierten Stil verwenden. alternativ können Sie ein Popup-Steuerelement verwenden, eine dritte Option wäre, einen Adorner zu verwenden.

Mein Gut sagt, dass Sie eine tooltip wollen, tho.

<TextBlock ToolTip="stuff, could even be a custom control, etc" Text="my text" /> 

Sie dann die ToolTipService aufsteckbaren Eigenschaften verwenden, können eine Vielzahl von Optionen zu setzen für den Tooltip,

von Verzögerungen Tooltip Positionen
Verwandte Themen