如何为自定义控件添加“闪烁”效果?

时间:2012-02-15 09:10:37

标签: c# wpf

如果你在里面创建app并显示模态窗口,然后点击外部模态,你的窗口将会“闪烁”。

如何使用自定义控件,而不是Windows?

1 个答案:

答案 0 :(得分:0)

您使用的自定义窗口未显示Windows标题栏,因此您无法看到闪烁效果。要使自定义标题栏闪烁,您必须做一些工作。

我不确定这实际上是否有效,但您需要检测窗口正在发送到窗口以使其闪烁的消息。查看here,了解如何通知窗口收到的消息。这是该页面的代码:

using System;
using System.Windows;
using System.Windows.Interop;

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

        protected override void OnSourceInitialized(EventArgs e)
        {
            base.OnSourceInitialized(e);
            HwndSource source = PresentationSource.FromVisual(this) as HwndSource;
            source.AddHook(WndProc);
        }

        private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
        {
            // Write some debug messages to the console here to detect what message is sent to the window when you click behind an active modal dialog

            return IntPtr.Zero;
        }
    }
}

请注意我在代码中的评论。

如果可行,你可以在那里触发XAML中的动画来模仿闪烁效果。

为了感兴趣,应用程序是否会在任务栏中闪烁?