コード例 #1
0
ファイル: DockManager.cs プロジェクト: dongfengxin/YDock
        /// <summary>
        /// 以DockBar模式(必须指定停靠方向,否则默认停靠在左侧)向DockManager注册一个DockElement
        /// </summary>
        /// <param name="title">标题栏文字</param>
        /// <param name="content">内容</param>
        /// <param name="imageSource">标题栏图标</param>
        /// <param name="side">停靠方向(默认左侧)</param>
        /// <param name="canSelect">是否直接停靠在选项栏中供用户选择(默认为False)</param>
        /// <param name="desiredWidth">期望的宽度</param>
        /// <param name="desiredHeight">期望的高度</param>
        /// <returns></returns>
        public void RegisterDock(IDockSource content, DockSide side = DockSide.Left, bool canSelect = false, double desiredWidth = Constants.DockDefaultWidthLength, double desiredHeight = Constants.DockDefaultHeightLength)
        {
            DockElement ele = new DockElement()
            {
                ID            = id++,
                Title         = content.Header,
                Content       = content as UIElement,
                ImageSource   = content.Icon,
                Side          = side,
                Mode          = DockMode.DockBar,
                CanSelect     = canSelect,
                DesiredWidth  = desiredWidth,
                DesiredHeight = desiredHeight
            };

            switch (side)
            {
            case DockSide.Left:
            case DockSide.Right:
            case DockSide.Top:
            case DockSide.Bottom:
                _root.AddSideChild(ele, side);
                break;

            default:    //其他非法方向返回NULL
                ele.Dispose();
                break;
            }
            var ctrl = new DockControl(ele);

            AddDockControl(ctrl);
            content.DockControl = ctrl;
        }
コード例 #2
0
ファイル: AutoHideWindow.cs プロジェクト: yzylovepmn/YDock
 private void _DestroyContentForModel(DockElement Model)
 {
     if (ActualWidth > 0)
     {
         Model.DesiredWidth  = ActualWidth - Constants.SplitterSpan / 2;
         Model.DesiredHeight = ActualHeight - Constants.SplitterSpan / 2;
     }
     _layoutContent.Model = null;
     Children.Clear();
 }
コード例 #3
0
ファイル: AutoHideWindow.cs プロジェクト: yzylovepmn/YDock
        private void _CreateContentForModel(DockElement model)
        {
            _layoutContent.Model = model;
            switch (model.Side)
            {
            case DockSide.Left:
            case DockSide.Right:
                _splitter.Cursor = Cursors.SizeWE;
                break;

            case DockSide.Top:
            case DockSide.Bottom:
                _splitter.Cursor = Cursors.SizeNS;
                break;
            }
            Children.Add(_layoutContent);
            Children.Add(_splitter);
        }
コード例 #4
0
ファイル: DockManager.cs プロジェクト: dongfengxin/YDock
        /// <summary>
        /// 以Float模式向DockManager注册一个DockElement
        /// </summary>
        /// <param name="title">标题栏文字</param>
        /// <param name="content">内容</param>
        /// <param name="imageSource">标题栏图标</param>
        /// <param name="side">停靠方向(默认左侧)</param>
        /// <param name="desiredWidth">期望的宽度</param>
        /// <param name="desiredHeight">期望的高度</param>
        /// <returns></returns>
        public void RegisterFloat(IDockSource content, DockSide side = DockSide.Left, double desiredWidth = Constants.DockDefaultWidthLength, double desiredHeight = Constants.DockDefaultHeightLength)
        {
            DockElement ele = new DockElement()
            {
                ID            = id++,
                Title         = content.Header,
                Content       = content as UIElement,
                ImageSource   = content.Icon,
                Side          = side,
                Mode          = DockMode.Float,
                DesiredWidth  = desiredWidth,
                DesiredHeight = desiredHeight
            };
            var ctrl  = new DockControl(ele);
            var group = new LayoutGroup(side, ele.Mode, this);

            group.Attach(ele);
            AddDockControl(ctrl);
            content.DockControl = ctrl;
        }
コード例 #5
0
ファイル: DockManager.cs プロジェクト: dongfengxin/YDock
        /// <summary>
        /// 以选项卡模式向DockManager注册一个DockElement
        /// </summary>
        /// <param name="title">标题栏文字</param>
        /// <param name="content">内容</param>
        /// <param name="imageSource">标题栏图标</param>
        /// <param name="canSelect">是否直接停靠在选项栏中供用户选择(默认为False)</param>
        /// <param name="desiredWidth">期望的宽度</param>
        /// <param name="desiredHeight">期望的高度</param>
        /// <returns></returns>
        public void RegisterDocument(IDockSource content, bool canSelect = false, double desiredWidth = Constants.DockDefaultWidthLength, double desiredHeight = Constants.DockDefaultHeightLength)
        {
            DockElement ele = new DockElement(true)
            {
                ID            = id++,
                Title         = content.Header,
                Content       = content as UIElement,
                ImageSource   = content.Icon,
                Side          = DockSide.None,
                Mode          = DockMode.Normal,
                CanSelect     = canSelect,
                DesiredWidth  = desiredWidth,
                DesiredHeight = desiredHeight
            };
            var ctrl = new DockControl(ele);

            AddDockControl(ctrl);
            _root.DocumentModels[0].Attach(ele);
            content.DockControl = ctrl;
        }
コード例 #6
0
ファイル: DockManager.cs プロジェクト: verk123/YDock
        /// <summary>
        /// 以Float模式向DockManager注册一个DockElement
        /// </summary>
        /// <param name="title">标题栏文字</param>
        /// <param name="content">内容</param>
        /// <param name="imageSource">标题栏图标</param>
        /// <param name="side">停靠方向(默认左侧)</param>
        /// <param name="desiredWidth">期望的宽度</param>
        /// <param name="desiredHeight">期望的高度</param>
        /// <returns></returns>
        public void RegisterFloat(IDockSource content, DockSide side = DockSide.Left, int?id = null, double desiredWidth = Constants.DockDefaultWidthLength, double desiredHeight = Constants.DockDefaultHeightLength, double floatLeft = 0.0, double floatTop = 0.0)
        {
            DockElement ele = new DockElement()
            {
                ID            = id.HasValue ? id.Value : _GetID(),
                Title         = content.Header,
                Content       = content,
                ImageSource   = content.Icon,
                Side          = side,
                Mode          = DockMode.Float,
                DesiredWidth  = desiredWidth,
                DesiredHeight = desiredHeight,
                FloatLeft     = floatLeft,
                FloatTop      = floatTop
            };
            var ctrl  = new DockControl(ele);
            var group = new LayoutGroup(side, ele.Mode, this);

            group.Attach(ele);
            AddDockControl(ctrl);
            content.DockControl = ctrl;
        }
コード例 #7
0
ファイル: DockManager.cs プロジェクト: verk123/YDock
        /// <summary>
        /// 以选项卡模式向DockManager注册一个DockElement
        /// </summary>
        /// <param name="title">标题栏文字</param>
        /// <param name="content">内容</param>
        /// <param name="imageSource">标题栏图标</param>
        /// <param name="canSelect">是否直接停靠在选项栏中供用户选择(默认为False)</param>
        /// <param name="desiredWidth">期望的宽度</param>
        /// <param name="desiredHeight">期望的高度</param>
        /// <returns></returns>
        public void RegisterDocument(IDockSource content, int?id = null, bool canSelect = false, double desiredWidth = Constants.DockDefaultWidthLength, double desiredHeight = Constants.DockDefaultHeightLength, double floatLeft = 0.0, double floatTop = 0.0)
        {
            DockElement ele = new DockElement(true)
            {
                ID            = id.HasValue ? id.Value : _GetID(),
                Title         = content.Header,
                Content       = content,
                ImageSource   = content.Icon,
                Side          = DockSide.None,
                Mode          = DockMode.Normal,
                CanSelect     = canSelect,
                DesiredWidth  = desiredWidth,
                DesiredHeight = desiredHeight,
                FloatLeft     = floatLeft,
                FloatTop      = floatTop
            };
            var ctrl = new DockControl(ele);

            AddDockControl(ctrl);
            _root.DocumentModels[0].Attach(ele);
            content.DockControl = ctrl;
        }
コード例 #8
0
 public void Dispose()
 {
     Model       = null;
     DataContext = null;
 }