Mini Kabibi Habibi

Current Path : C:/Users/Public/Documents/DXperience 13.1 Demos/WPF/CS/BarsDemo.Wpf/Controls/
Upload File :
Current File : C:/Users/Public/Documents/DXperience 13.1 Demos/WPF/CS/BarsDemo.Wpf/Controls/DemoModuleControl.cs

using System;
using System.Windows;
using DevExpress.Xpf.Bars;
using DevExpress.Xpf.Core.Native;
using DevExpress.Xpf.DemoBase;
using DevExpress.Xpf.Utils;


namespace BarsDemo {
    public class BarsDemoModule : DemoModule {
        public static readonly DependencyProperty BarManagerProperty =
            DependencyPropertyManager.Register("BarManager", typeof(BarManager), typeof(BarsDemoModule), new FrameworkPropertyMetadata(null));
        public BarManager Manager {
            get { return (BarManager)GetValue(BarManagerProperty); }
            set { SetValue(BarManagerProperty, value); }
        }

        public BarsDemoModule() {

            Loaded += OnLoaded;
            Unloaded += OnUnloaded;
        }
        protected override void RaiseIsPopupContentInvisibleChanged(DependencyPropertyChangedEventArgs e) {
            base.RaiseIsPopupContentInvisibleChanged(e);
            if(Manager == null) return;
            if(!(bool)e.NewValue)
                BarManagerHelper.ShowFloatingBars(Manager);
            else
                BarManagerHelper.HideFloatingBars(Manager);
        }
        protected virtual bool NeedChangeEditorsTheme { get { return false; } }
        protected virtual void OnLoaded(object sender, RoutedEventArgs e) {
            VisualTreeEnumerator en = new VisualTreeEnumerator(this);
            while(en.MoveNext()) {
                BarManager manager = en.Current as BarManager;
                if(manager != null) {
                    DemoModuleControl.DemoContent = manager;
                    Manager = manager;
                    break;
                }
            }
        }
        protected virtual void OnUnloaded(object sender, RoutedEventArgs e) { }
        protected override bool CanLeave() {
            return true;
        }
    }
}