private static void ChromeChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { if (DesignerProperties.GetIsInDesignMode(d)) { return; } Window window = d as Window; if (window != null) { // don't care about old chrome since it has no state Chrome newChrome = e.NewValue as Chrome; if (__legacyBorder) { if (newChrome == null) { LegacyBorderManager.SetManager(window, null); } else if (e.NewValue != e.OldValue) { var worker = LegacyBorderManager.GetManager(window); if (worker == null) { worker = new LegacyBorderManager(); LegacyBorderManager.SetManager(window, worker); } else { worker.UpdateChrome(newChrome); } } } else { if (newChrome == null) { BorderManager.SetManager(window, null); } else if (e.NewValue != e.OldValue) { var worker = BorderManager.GetManager(window); if (worker == null) { worker = new BorderManager(); BorderManager.SetManager(window, worker); } else { worker.UpdateChrome(newChrome); } } } } }
void _contentWindow_Closed(object sender, EventArgs e) { LegacyBorderManager.SetManager(_contentWindow, null); }
public static void SetManager(DependencyObject obj, LegacyBorderManager value) { obj.SetValue(ManagerProperty, value); }