Пользовательское окно минимизировать анимацию

Я разрабатываю панель задач для экрана секунд и не могу заставить эту вещь работать..

Когда я сверну приложение на экране секунд, оно покажет анимацию сворачивания на главном экране (Vista & 7 Aero). Я пытаюсь показать анимацию на своей панели задач на экране секунд. Я знаю, что это возможно, потому что Displayfusion и Acual Multi Monitor также имеют эту функцию. Поэтому после небольшого исследования я обнаружил, что вы можете установить позицию минимизации с помощью API SetWindowPlacement. Тем не менее, я не могу заставить это работать. В окне по-прежнему будет отображаться анимация минимизации на главном экране.

Это то, что я пробовал до сих пор: сначала скрыть кнопку панели задач в окне, которое находится на втором экране, с помощью метода ITaskbarList DeleteTab. Затем я использую эту функцию, чтобы установить минимальную позицию и свернуть окно:

public void ShowHideAnimated(IntPtr Handle, Boolean show)
        {           
            WINDOWPLACEMENT wp = new WINDOWPLACEMENT(); 
            GetWindowPlacement(Handle, out wp);

            wp.length = Marshal.SizeOf(typeof(WINDOWPLACEMENT));

            wp.flags = WPF_SETMINPOSITION;
            wp.ptMinPosition.X = -500; //(-500,200) is a point on the second screen
            wp.ptMinPosition.Y = 200;

            if (!SetWindowPlacement(Handle, ref wp))
            {
                Debug.WriteLine( Marshal.GetLastWin32Error() );
            }

            if(!show)
            {            
                ShowWindowAsync(Handle, SW_MINIMIZE);
            }
            else
            {
                ShowWindowAsync(Handle, SW_RESTORE);
            }                 
        }

0 ответов

Другие вопросы по тегам