Пользовательское окно минимизировать анимацию
Я разрабатываю панель задач для экрана секунд и не могу заставить эту вещь работать..
Когда я сверну приложение на экране секунд, оно покажет анимацию сворачивания на главном экране (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);
}
}