windowsforms-devexpress-dot-utils-dot-workspacemanager-dot-saveworkspace-x28-system-dot-string-system-dot-io-dot-stream-system-dot-boolean-x29.md
Saves a workspace from the WorkspaceManager.Workspaces collection to a stream.
Namespace : DevExpress.Utils
Assembly : DevExpress.Utils.v25.2.dll
NuGet Packages : DevExpress.Utils, DevExpress.Wpf.Core
public bool SaveWorkspace(
string name,
Stream stream,
bool createIfNotExisting = false
)
Public Function SaveWorkspace(
name As String,
stream As Stream,
createIfNotExisting As Boolean = False
) As Boolean
| Name | Type | Description |
|---|---|---|
| name | String |
The name of the target workspace in the WorkspaceManager.Workspaces collection.
| | stream | Stream |
The stream to which the target workspace is to be saved.
|
| Name | Type | Default | Description |
|---|---|---|---|
| createIfNotExisting | Boolean | False |
true to capture and then save the current controls’ layouts to a stream if the WorkspaceManager.Workspaces collection does not contain a workspace with the specified name. false to interrupt the workspace saving if the WorkspaceManager.Workspaces collection does not contain a workspace with the specified name.
|
| Type | Description |
|---|---|
| Boolean |
true if the workspace was successfully saved; otherwise, false.
|
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
See Also