كيف يمكنني إجراء فقاعة معلومات تحوم تظهر على Mouseover في WPF؟

StackOverflow https://stackoverflow.com/questions/1841800

سؤال

أريد أن أجعل فقاعة النص تظهر عندما يكون الماوس فوق كتلة النص.

ال بعد التعميم هو الأقرب الذي يمكنني الحصول عليه، لكنه مجرد حقن النص في TextBox.Text نفسه ويغير اللون. أريد أن أحصل على حد على سبيل المثال / stackpanel / textblock أعلى 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.";
        }

    }
}
هل كانت مفيدة؟

المحلول

طرق بضعة طرق يمكنك القيام بها، واحدة تستخدم طرفا أداة مع نمط مخصص. بديل، يمكنك استخدام عنصر تحكم منبثق، سيكون خيار ثالث استخدام adorner.

بلدي الأمعاء يقول أنك تريد تلميح, ، رغم ذلك.

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

يمكنك بعد ذلك استخدام Tooltipservice. خصائص مرفق لتعيين مجموعة متنوعة من الخيارات ل Tooltip المذكورة، من التأخير إلى مواقع Tooltip

نصائح أخرى

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top