/// <summary> /// Stattet das Fenster mit einem erweiterten Aero-Rahmen aus /// </summary> protected override void OnSourceInitialized(EventArgs e) { base.OnSourceInitialized(e); // Den Aero-Rahmen in den Innenbereich verbreitern WindowUtils.ExtendWindowFrame(this); // Die Hook-Methode in die Nachrichtenverarbeitung einhängen HwndSource hwndSource = HwndSource.FromHwnd( new WindowInteropHelper(this).Handle); hwndSource.AddHook(new HwndSourceHook(this.WindowProc)); }
/// <summary> /// Fängt den Wechsel des Windows-Themas ab, um den Rahmen /// neu zu definieren /// </summary> private IntPtr WindowProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled) { const int DWMCOMPOSITIONCHANGED = 0x031E; if (msg == DWMCOMPOSITIONCHANGED) { // Den Rahmen neu definieren WindowUtils.ExtendWindowFrame(this); } // Ein leeres Ergebnis zurückgeben return(IntPtr.Zero); }