コード例 #1
0
        private static void Window_Activated(object sender, EventArgs e)
        {
            Window window = (Window)sender;
            int    index  = TabTearOffBehavior._windows.IndexOf(window);

            if (index == 0)
            {
                return;
            }
            TabTearOffBehavior._windows.RemoveAt(index);
            TabTearOffBehavior._windows.Insert(0, window);
            TabTearOffBehavior.AssignZIndices();
        }
コード例 #2
0
        private static void MaintainZIndexProperty_PropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            Window window = d as Window;

            if (window == null)
            {
                return;
            }
            if ((bool)e.NewValue)
            {
                window.Activated += TabTearOffBehavior.Window_Activated;
                window.Closed    += TabTearOffBehavior.Window_Closed;
                TabTearOffBehavior._windows.Add(window);
            }
            else if (TabTearOffBehavior._windows.Remove(window))
            {
                window.ClearValue(TabTearOffBehavior._zIndexProperty);
                window.Activated -= TabTearOffBehavior.Window_Activated;
                window.Closed    -= TabTearOffBehavior.Window_Closed;
            }
            TabTearOffBehavior.AssignZIndices();
        }