正如我的标题所说,我需要为这种窗口制作动画。我实际捕获了WM_SYSCOMMAND并定义了特定的WindowState。
private System.IntPtr WindowProc(System.IntPtr hwnd, int msg, System.IntPtr wParam, System.IntPtr lParam,ref bool handled)
{
var retVal = IntPtr.Zero;
switch (msg) //http://www.mycsharp.de/wbb2/thread.php?postid=111901 Auflistung der WndProc-Message-Kommandos
{
case 0x0112: //https://msdn.microsoft.com/de-de/library/windows/desktop/ms646360(v=vs.85).aspx //WM_SYSCOMMAND message
if ((int)wParam == 0xF120) //SC_RESTORE | Restores the window to its normal position and size.
{
WindowState = WindowState.Normal;
handled = true;
}
else if ((int) wParam == 0xF030) //SC_MAXIMIZE | Maximizes the window.
{
WindowState = WindowState.Maximized;
handled = true;
}
else if ((int) wParam == 0xF020) //SC_MINIMIZE | Minimizes the window.
{
WindowState = WindowState.Minimized;
handled = true;
}
break;
}
return retVal;
}
我应该手动制作故事板并计算新的大小和方向吗?或者有其他方法可以解决我的问题吗?
在WindowState无法解决之前更改WindowStyle,因为" AllowTransparency = true" 。
此致
我制作了一个全新的风格,应用程序总是具有相同的外观(在每个操作系统上)。
激活窗口:
停用窗口:
窗口语言:
在任务栏上有一个用于切换语言的组合框。打开/关闭窗口也有淡入/淡出效果。