Как добавить «мигающий» эффект в пользовательский элемент управления? - PullRequest
0 голосов
/ 15 февраля 2012

Если вы создаете приложение и отображаете модальное окно внутри, а затем нажимаете за пределами модального окна, ваше окно будет «мигать».

Как это можно сделать с помощью пользовательских элементов управления, а не окон?

1 Ответ

0 голосов
/ 15 февраля 2012

В пользовательском окне, которое вы используете, не отображается заголовок Windows, поэтому вы не можете увидеть эффект мигания. Чтобы сделать ваш собственный флэш-заголовок, вам нужно будет поработать.

Я не уверен, что это на самом деле будет работать, но вам нужно обнаружить, что окна посылают окну, чтобы оно мигало. Посмотрите здесь , чтобы увидеть, как вы можете получать уведомления о сообщениях, полученных окном. Это код с этой страницы:

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 для имитации мигающего эффекта.

Ради интереса, приложение мигает на панели задач?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...