如何在 WPF 中的鼠标悬停时显示悬停信息气泡?

问题描述 投票:0回答:2

我想让当鼠标悬停在TextBlock上时出现文本气泡

以下代码是我能得到的最接近的代码,但它只是将文本注入 TextBox.Text 本身并更改颜色。我想要一个例如鼠标悬停期间,原始文本块上方的边框/StackPanel/TextBlock 浮动在不同的图层上

如何使用首字母缩略词标签制作类似于网络体验的悬停面板?

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."; } } }
    
c# wpf xaml hover mouseover
2个回答
60
投票
有几种方法可以做到这一点,一种是使用具有自定义样式的工具提示。 或者,您可以使用弹出控件,第三种选择是使用装饰器。

我的直觉告诉你你想要一个

工具提示,不过。

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

然后,您可以使用

ToolTipService 可附加属性为所述工具提示设置各种选项,从延迟到工具提示位置


5
投票

System.Windows.Controls.ToolTip 类.

© www.soinside.com 2019 - 2024. All rights reserved.