Share:

DevExpress DockLayoutManager


using DevExpress.Xpf.Docking;
using DevExpress.Xpf.Layout.Core;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;

namespace Saatody.Module.Startup
{
    public partial class SaatodyApplication : Window
{ private StartPage StartPage = new StartPage(); public SaatodyApplication()
{ InitializeComponent(); Event(); } private LayoutGroup Root = new LayoutGroup(); private LayoutGroup LG = new LayoutGroup(); private DocumentGroup DG = new DocumentGroup(); private TabbedGroup TG = new TabbedGroup(); private LayoutPanel LP = new LayoutPanel(); private DocumentPanel DP = new DocumentPanel(); private DocumentPanel TDP = new DocumentPanel(); private LayoutPanel TP = new LayoutPanel(); private void Event() { Dock.ShowingDockHints += (sender, e) => { if ((e.DraggingSource).GetType() == typeof(DocumentPanel)) { if (((e.DraggingTarget).GetType() != typeof(DocumentGroup)) && ((e.DraggingTarget).GetType() != typeof(DocumentPanel))) { System.Console.WriteLine("1 Type: " + (e.DraggingTarget).GetType()); e.HideAll(); } else if (((e.DraggingTarget).GetType() == typeof(DocumentGroup)) || ((e.DraggingTarget).GetType() == typeof(DocumentPanel))) { System.Console.WriteLine("2 Type: " + (e.DraggingTarget).GetType()); e.Hide(DockHint.AutoHideBottom); e.Hide(DockHint.AutoHideLeft); e.Hide(DockHint.AutoHideRight); e.Hide(DockHint.AutoHideTop); //e.Hide(DockHint.Center); //e.Hide(DockHint.CenterBottom); //e.Hide(DockHint.CenterLeft); //e.Hide(DockHint.CenterRight); //e.Hide(DockHint.CenterTop); e.Hide(DockHint.SideBottom); e.Hide(DockHint.SideLeft); e.Hide(DockHint.SideRight); e.Hide(DockHint.SideTop); e.Hide(DockHint.TabBottom); e.Hide(DockHint.TabHeader); e.Hide(DockHint.TabLeft); e.Hide(DockHint.TabRight); e.Hide(DockHint.TabTop); } } }; this.Loaded += (sender, e) => { Dock.DockController.Dock(Root); Dock.DockController.Dock(LG); Dock.DockController.Dock(DG); Dock.DockController.Dock(TG); LP = new LayoutPanel(); LP.Caption = "Layout"; Dock.DockController.Dock(LP, LG, DockType.Fill); DP = new DocumentPanel(); DP.Caption = "Document"; Dock.DockController.Dock(DP, DG, DockType.Fill); TDP = DP; TP = new LayoutPanel(); TP.Caption = "Tabbed"; Dock.DockController.Dock(TP, TG, DockType.Fill); LG.Background = new SolidColorBrush(Color.FromRgb(255, 0, 0)); DG.Background = new SolidColorBrush(Color.FromRgb(0, 255, 0)); TG.Background = new SolidColorBrush(Color.FromRgb(0, 0, 255)); LG.DestroyOnClosingChildren = false; DG.DestroyOnClosingChildren = false; TG.DestroyOnClosingChildren = false; }; OpenNewProject.ItemClick += (sender, e) => { LP = new LayoutPanel(); LP.Caption = "Layout"; Dock.DockController.Dock(LP, LG, DockType.Fill); }; OpenOpenProject.ItemClick += (sender, e) => { DP = new DocumentPanel(); DP.Caption = "Document"; if (Dock.ActiveDockItem != null) { if (Dock.ActiveDockItem.GetType() == typeof(DocumentPanel)){ if (Dock.ActiveDockItem.IsFloating == false) { Dock.DockController.Dock(DP, Dock.ActiveDockItem, DockType.Fill); TDP = DP; } else if (Dock.ActiveDockItem.IsFloating == true) { if (TDP.IsClosed == false) { if (TDP.IsFloating == false) { Dock.DockController.Dock(DP, TDP, DockType.Fill); TDP = DP; } else if (TDP.IsFloating == true) { // Any Group To Use For Fill Dock.DockController.Dock(DP, DG, DockType.Fill); TDP = DP; } } else { // Any Group To Use For Fill Dock.DockController.Dock(DP, DG, DockType.Fill); TDP = DP; } } } else if(Dock.ActiveDockItem.GetType() != typeof(DocumentPanel)) { if (TDP.IsClosed == false) { if (TDP.IsFloating == false) { Dock.DockController.Dock(DP, TDP, DockType.Fill); TDP = DP; } else if (TDP.IsFloating == true) { // Any Group To Use For Fill Dock.DockController.Dock(DP, DG, DockType.Fill); TDP = DP; } } else { // Any Group To Use For Fill Dock.DockController.Dock(DP, DG, DockType.Fill); TDP = DP; } } } else { if (TDP.IsClosed == false) { Dock.DockController.Dock(DP, TDP, DockType.Fill); TDP = DP; } else { // Any Group To Use For Fill Dock.DockController.Dock(DP, DG, DockType.Fill); TDP = DP; } } }; OpenStartPage.ItemClick += (sender, e) => { TP = new LayoutPanel(); TP.Caption = "Tabbed"; Dock.DockController.Dock(TP, TG, DockType.Fill); }; } } }




Comments

Popular posts from this blog

Get Color From Pixel C# WPF | Saatody | Amit Padhiyar

Basic Audio Operations With MP3 And Wave Files Using NAudio C#

Create Drag And Drop Operation Between DevExpress GridControl And Custom WPF UI | Saatody | Amit Padhiyar