Как я могу сделать так, чтобы при наведении курсора мыши в WPF появлялся информационный пузырь?
Вопрос
я хочу сделать пузырь текста появляются, когда указатель мыши находится над Текстовый блок.
А следующий код это самое близкое, что я могу получить, но он просто вводит текст в сам TextBox.Text и меняет цвет.Я хочу иметь, например.Border/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.";
}
}
}
Решение
Это можно сделать несколькими способами: один — с помощью всплывающей подсказки с собственным стилем.Альтернативно вы можете использовать всплывающий элемент управления, третий вариант — использовать декоратор.
Моя интуиция говорит, что ты хочешь подсказка, хотя.
<TextBlock ToolTip="stuff, could even be a custom control, etc" Text="my text" />
затем вы можете использовать ToolTipService прикрепляемые свойства для установки различных параметров для указанной всплывающей подсказки, от задержек до положения всплывающей подсказки.
Другие советы