2012-02-15 98 views
0

如果你在裏面創建應用並顯示模態窗口,然後點擊模態外,你的窗口將會'閃爍'。如何將「閃爍」效果添加到自定義控件?

如何使用自定義控件完成,而不是Windows?

+0

你的意思是「閃爍」,當你用戶'.ShowDialog()' – 2012-02-15 09:20:57

+0

是的,與模式模式。 – 2012-02-15 12:26:27

+0

我明白你指的是什麼閃光,我只是不確定你想要什麼樣的效果?你想防止重點從你的自定義控制丟失,然後通過閃爍強調​​? – 2012-02-15 13:08:50

回答

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中的動畫來模仿閃爍的效果。

出於利益的考慮,應用程序是否在任務欄中閃爍?