windowsforms-devexpress-dot-utils-dot-workspacemanager-dot-applyworkspace-x28-system-dot-string-x29.md
Locates a workspace with the target name within the WorkspaceManager.Workspaces collection and applies it to the application.
Namespace : DevExpress.Utils
Assembly : DevExpress.Utils.v25.2.dll
NuGet Packages : DevExpress.Utils, DevExpress.Wpf.Core
public void ApplyWorkspace(
string name
)
Public Sub ApplyWorkspace(
name As String
)
| Name | Type | Description |
|---|---|---|
| name | String |
A String value that is the workspace name within the WorkspaceManager.Workspaces collection.
|
Before the ApplyWorkspace method is executed, the WorkspaceManager.BeforeApplyWorkspace event is raised.
The ApplyWorkspace method applies a workspace that is already loaded into the WorkspaceManager.Workspaces collection. To add a workspace to this collection, use the WorkspaceManager.LoadWorkspace method.
Note
Before applying a workspace during a form load (for instance, in your Form.Load event handler), you may need to call the ForceInitialize methods of controls contained in the workspace. These methods are: BarManager.ForceInitialize, DockManager.ForceInitialize, GridControl.ForceInitialize, PivotGridControl.ForceInitialize, RibbonControl.ForceInitialize and TreeList.ForceInitialize.
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.
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);
}
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
The following code snippet (auto-collected from DevExpress Examples) contains a reference to the ApplyWorkspace(String) method.
Note
The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.
winforms-workspacemanager-saving-load-app-layout/CS/T190543/Form1.cs#L105
if (!string.IsNullOrEmpty(selectWorkSpaceItem))
this.workspaceManager1.ApplyWorkspace(selectWorkSpaceItem);
}
winforms-workspacemanager-saving-load-app-layout/VB/T190543/Form1.vb#L93
Dim selectWorkSpaceItem As String = Me.selectWorkSpaceItem.EditValue.ToString()
If Not String.IsNullOrEmpty(selectWorkSpaceItem) Then workspaceManager1.ApplyWorkspace(selectWorkSpaceItem)
End If
See Also