web-dev-qa-db-ja.com

WPFのマウスオーバーにホバー情報バブルを表示するにはどうすればよいですか?

マウスがTextBlockの上にあるときにテキストのバブルを表示させたい)。

次のコードは私が得ることができる最も近いものですが、TextBox.Text自体にテキストを挿入し、色を変更するだけです。私は例えば欲しい元のテキストブロックの上にあるBorder/StackPanel/TextBlockは、マウスオーバー中に別のレイヤーに浮かんでいます。

頭字語タグを使用してWebエクスペリエンスに似たホバーパネルを作成するにはどうすればよいですか?

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.";
        }

    }
}
15
Edward Tanguay

あなたがそれをすることができるいくつかの方法、1つはカスタムスタイルのツールチップを使用します。または、ポップアップコントロールを使用することもできます。3番目のオプションは、装飾を使用することです。

私の腸はあなたが欲しいと言っています ツールチップ 、トー。

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

次に、 ToolTipService アタッチ可能なプロパティを使用して、遅延からツールチップの位置まで、ツールチップのさまざまなオプションを設定できます。

45
Muad'Dib
4
Jimmy