Back to Devexpress

WorkspaceManager Class

windowsforms-devexpress-dot-utils-d7fcdfcb.md

latest5.7 KB
Original Source

WorkspaceManager Class

Manages layouts of all DevExpress controls in the application as one global workspace. Workspaces can be saved and restored to (from) a local storage or stream.

Namespace : DevExpress.Utils

Assembly : DevExpress.Utils.v25.2.dll

NuGet Packages : DevExpress.Utils, DevExpress.Wpf.Core

Declaration

csharp
[DXLicenseWinForms]
public class WorkspaceManager :
    Component
vb
<DXLicenseWinForms>
Public Class WorkspaceManager
    Inherits Component

The following members return WorkspaceManager objects:

Remarks

Workspace Manager is a tiny but powerful tool that detects other DevExpress components used in the application and provides a centralized way to save/load their layouts as one global workspace.

See the Workspace Manager topic to learn more.

Example

The following code shows how to use the WorkspaceManager component to save the form’s bounds and state, and the layout of DevExpress controls when a form is closed, and load this layout when the form starts.

You may need to call the controls’ ForceInitialize methods (e.g., GridControl.ForceInitialize) before applying layouts to the controls in a Form.Load event handler.

csharp
string file = "layout.xml";
 string workspaceName1 = "MyLayout";

 private void Form1_Load(object sender, EventArgs e) {
     //Use the WorkspaceManager to handle the layout of DevExpress controls that reside within the current form.
     workspaceManager1.TargetControl = this;

     // Save & restore the form's size, position and state along with DevExpress controls' layouts.
     workspaceManager1.SaveTargetControlSettings = true;

     // Disable layout load animation effects 
     workspaceManager1.AllowTransitionAnimation = DevExpress.Utils.DefaultBoolean.False;

    // Disable (de)serialization for the following controls (if required):
    //WorkspaceManager.SetSerializationEnabled(gaugeControl1, false);
    //WorkspaceManager.SetSerializationEnabled(accordionControl1, false);

    // When restoring layouts of controls in a Form.Load event handler,
    // you may need to call the controls' ForceInitialize methods to finish their initialization before restoring their layouts.
    //gridControl1.ForceInitialize();
    //dockManager1.ForceInitialize();
    //barManager1.ForceInitialize();
    //...

     //Load DevExpress controls' layouts from a file
     if (workspaceManager1.LoadWorkspace(workspaceName1, file, true))
         workspaceManager1.ApplyWorkspace(workspaceName1);
 }

 private void Form1_FormClosed(object sender, FormClosedEventArgs e) {
     //Save DevExpress controls' layouts to a file
     workspaceManager1.CaptureWorkspace(workspaceName1, true);
     workspaceManager1.SaveWorkspace(workspaceName1, file, true);
 }
vb
Dim file As String = "layout.xml"
Dim workspaceName1 As String = "MyLayout"

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    ' Use the WorkspaceManager to handle the layout of DevExpress controls that reside within the current form.
    WorkspaceManager1.TargetControl = Me

    ' Save & restore the form's size, position and state along with DevExpress controls' layouts.
    WorkspaceManager1.SaveTargetControlSettings = True

    ' Disable layout load animation effects 
    WorkspaceManager1.AllowTransitionAnimation = DevExpress.Utils.DefaultBoolean.False

    ' Disable (de)serialization for the following controls (if required):
    'WorkspaceManager.SetSerializationEnabled(GaugeControl1, False)
    'WorkspaceManager.SetSerializationEnabled(AccordionControl1, False)

    ' When restoring layouts of controls in a Form.Load event handler,
    ' you may need to call the controls' ForceInitialize methods to finish their initialization before restoring their layouts.
    'GridControl1.ForceInitialize()
    'DockManager1.ForceInitialize()
    'BarManager1.ForceInitialize()
    '...

    ' Load DevExpress controls' layouts from a file
    If WorkspaceManager1.LoadWorkspace(workspaceName1, file, True) Then
        WorkspaceManager1.ApplyWorkspace(workspaceName1)
    End If
End Sub

Private Sub Form1_FormClosed(sender As Object, e As FormClosedEventArgs) Handles MyBase.FormClosed
    ' Save DevExpress controls' layouts to a file
    WorkspaceManager1.CaptureWorkspace(workspaceName1, True)
    WorkspaceManager1.SaveWorkspace(workspaceName1, file, True)
End Sub

Inheritance

Object MarshalByRefObject Component WorkspaceManager

See Also

WorkspaceManager Members

Workspace Manager

DevExpress.Utils Namespace