Esempio n. 1
0
        private static void TabControl_Loaded(object sender, RoutedEventArgs e)
        {
            TabControl tabControl = (TabControl)sender;

            tabControl.Loaded -= TabTearOffBehavior.TabControl_Loaded;
            TabTearOffBehavior.SetWindowMaintainZIndex(tabControl, true);
        }
Esempio n. 2
0
        private static void HandlerProperty_PropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            TabControl tabControl = d as TabControl;

            if (tabControl == null)
            {
                return;
            }
            if (e.NewValue == null && e.OldValue != null)
            {
                WeakEventManager <TabControl, MouseButtonEventArgs> .RemoveHandler(tabControl, nameof(TabControl.PreviewMouseLeftButtonDown), TabTearOffBehavior.TabControl_PreviewMouseLeftButtonDown);

                if (!tabControl.IsLoaded)
                {
                    tabControl.Loaded -= TabTearOffBehavior.TabControl_Loaded;
                }
                else
                {
                    TabTearOffBehavior.SetWindowMaintainZIndex(tabControl, false);
                }
            }
            else if (e.NewValue != null && e.OldValue == null)
            {
                WeakEventManager <TabControl, MouseButtonEventArgs> .AddHandler(tabControl, nameof(TabControl.PreviewMouseLeftButtonDown), TabTearOffBehavior.TabControl_PreviewMouseLeftButtonDown);

                if (!tabControl.IsLoaded)
                {
                    tabControl.Loaded += TabTearOffBehavior.TabControl_Loaded;
                }
                else
                {
                    TabTearOffBehavior.SetWindowMaintainZIndex(tabControl, true);
                }
            }
        }