我想有一個自定義窗口自定義窗口樣式,以便隨後的幾個教程,由窗口樣式設置爲none,然後添加標題欄啓用該/恢復/最小化/關閉按鈕自己。最小化是通過簡單處理單擊事件和窗口狀態設置爲最小化來實現,但這並不表明你在Windows 7上看到的最小化的動畫,只是瞬間隱藏窗口,與其他窗口使用時感覺很奇怪做動畫,因爲你傾向於感覺應用程序正在關閉。與最小化的動畫
所以,反正是有使該動畫的? ..當您將WindowStyle更改爲無時,它似乎被禁用。
編輯:測試代碼
public partial class MainWindow : Window
{
public MainWindow()
{
WindowStyle = WindowStyle.None;
InitializeComponent();
}
[DllImport("user32.dll")]
static extern int SendMessage(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam);
protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
{
base.OnMouseLeftButtonDown(e);
// this doesnt seem to animate
SendMessage(new WindowInteropHelper(this).Handle, 0x0112, (IntPtr)0xF020, IntPtr.Zero);
}
protected override void OnMouseRightButtonDown(MouseButtonEventArgs e)
{
base.OnMouseRightButtonDown(e);
WindowStyle = WindowStyle.SingleBorderWindow;
WindowState = WindowState.Minimized;
}
protected override void OnActivated(EventArgs e)
{
base.OnActivated(e);
Dispatcher.BeginInvoke(DispatcherPriority.ApplicationIdle, new Action(() => WindowStyle = WindowStyle.None));
}
}
Thankyou。我能夠得到第二種工作方式,但不是第一種。第一個仍然不顯示任何動畫。我使用 – pastillman
編輯了我的帖子,並使用代碼Im更新了我的答案。我有點不對。在這兩種情況下,當您單擊按鈕時,您都會注意到標題重新出現。但是當你自己發送消息時,窗口總是在最小化時動畫。如果您只是在點擊按鈕時更改邊框,則在通過任務欄將其最小化時不會生成動畫。 – Fayilt
不好意思回來這麼晚了,我覺得這很好。它不是真的那麼明顯,直到你有非常複雜的內容與laggy渲染 – pastillman