2012-02-15 15 views
0

アプリを作成して内側にモーダルウィンドウを表示し、外側のモーダルをクリックすると、ウィンドウが「点滅」します。カスタムコントロールに「点滅」効果を追加するには?

カスタムコントロールではなく、ウィンドウではどうすればできますか?

+0

ユーザーが '.ShowDialog() 'のときに「点滅」を意味します。 –

+0

はい、モーダルモードです。 –

+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にアニメーションをトリガーして、点滅する効果を模倣することができます。

興味のあることに、アプリケーションがタスクバーに点滅していますか?

関連する問題