How to restrict the resizing of the float window width in WPF DockingManager?
In WPF DockingManager, you can restrict the resizing of the width of the float window by using the CanResizeWidthInFloatState property. This is a boolean property that restricts the resizing of the width of float window for the corresponding floating child depending upon the values. When the CanResizeWidthInFloatState property is set as True, the width of the float window can be resized and when the CanResizeWidthInFloatState Property is False, the width of the float window unable to resize. Refer to the following code examples.
XAML
//This code shows how the CanResizeWidthInFloatState property is set as true for the corresponding floating child in the DockingManager <Window x:Class="DockingManager_floatwindowsample.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:syncfusion="http://schemas.syncfusion.com/wpf" Title="MainWindow" Height="350" Width="525"> <Grid x:Name="Grid1"> <syncfusion:DockingManager x:Name="Dock1" UseDocumentContainer="True" > <ContentControl syncfusion:DockingManager.Header="Dock1" syncfusion:DockingManager.CanResizeWidthInFloatState="True" syncfusion:DockingManager.State="Float"> </ContentControl> <ContentControl syncfusion:DockingManager.Header="Dock2" syncfusion:DockingManager.State="Dock"> </ContentControl> <ContentControl syncfusion:DockingManager.Header="Dock3" syncfusion:DockingManager.State="Dock"> </ContentControl> <ContentControl syncfusion:DockingManager.Header="Dock4" syncfusion:DockingManager.State="Document"> </ContentControl> <ContentControl syncfusion:DockingManager.Header="Dock5" syncfusion:DockingManager.State="Document" </ContentControl> </syncfusion:DockingManager> </Grid> </Window>
C#
//This code shows how the CanResizeWidthInFloatState property is set as true for the corresponding floating child in the DockingManager using Syncfusion.Windows.Tools.Controls; namespace DockingManager_floatwindowsample { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); DockingManager Docking = new DockingManager(); Docking.UseDocumentContainer = true; ContentControl content1 = new ContentControl(); DockingManager.SetHeader(content1, "Dock1"); DockingManager.SetState(content1, DockState.Float); DockingManager.SetCanResizeWidthInFloatState(content1, true); ContentControl content2 = new ContentControl(); DockingManager.SetHeader(content2, "Dock2"); DockingManager.SetState(content2, DockState.Dock); ContentControl content3 = new ContentControl(); DockingManager.SetHeader(content3, "Dock3"); DockingManager.SetState(content3, DockState.Dock); ContentControl content4 = new ContentControl(); DockingManager.SetHeader(content4, "Dock4"); DockingManager.SetState(content4, DockState.Document); Docking.Children.Add(content1); Docking.Children.Add(content2); Docking.Children.Add(content3); Docking.Children.Add(content4); Grid1.Children.Add(Docking); }}
Output:
The following output displays how the width of the float window is resized to some extent:
|
XAML
//This code shows how the CanResizeWidthInFloatState property is set as false for the corresponding floating child in the DockingManager <Window x:Class="DockingManager_floatwindowsample.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:syncfusion="http://schemas.syncfusion.com/wpf" Title="MainWindow" Height="350" Width="525"> <Grid x:Name="Grid1"> <syncfusion:DockingManager x:Name="Dock1" UseDocumentContainer="True" > <ContentControl syncfusion:DockingManager.Header="Dock1" syncfusion:DockingManager.CanResizeWidthInFloatState="False" syncfusion:DockingManager.State="Float"> </ContentControl> <ContentControl syncfusion:DockingManager.Header="Dock2" syncfusion:DockingManager.State="Dock"> </ContentControl> <ContentControl syncfusion:DockingManager.Header="Dock3" syncfusion:DockingManager.State="Dock"> </ContentControl> <ContentControl syncfusion:DockingManager.Header="Dock4" syncfusion:DockingManager.State="Document"> </ContentControl> <ContentControl syncfusion:DockingManager.Header="Dock5" syncfusion:DockingManager.State="Document"> </ContentControl> </syncfusion:DockingManager> </Grid> </Window>
C#
//This code shows how the CanResizeWidthInFloatState property is set as true for the corresponding floating child in the DockingManager using Syncfusion.Windows.Tools.Controls; namespace DockingManager_floatwindowsample { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); DockingManager Docking = new DockingManager(); Docking.UseDocumentContainer = true; ContentControl content1 = new ContentControl(); DockingManager.SetHeader(content1, "Dock1"); DockingManager.SetState(content1, DockState.Float); DockingManager.SetCanResizeWidthInFloatState(content1, false); ContentControl content2 = new ContentControl(); DockingManager.SetHeader(content2, "Dock2"); DockingManager.SetState(content2, DockState.Dock); ContentControl content3 = new ContentControl(); DockingManager.SetHeader(content3, "Dock3"); DockingManager.SetState(content3, DockState.Dock); ContentControl content4 = new ContentControl(); DockingManager.SetHeader(content4, "Dock4"); DockingManager.SetState(content4, DockState.Document); Docking.Children.Add(content1); Docking.Children.Add(content2); Docking.Children.Add(content3); Docking.Children.Add(content4); Grid1.Children.Add(Docking); }}}
Output:
The following output displays how the width of the float window remains the same:
|
Conclusion
I hope you enjoyed learning about how to restrict the resizing of the float window width in WPF DockingManager.
You can refer to our WPF DockingManager feature tour page to know about its other groundbreaking feature representations. You can also explore our WPF DockingManage documentation to understand how to create and manipulate data.
For current customers, you can check out our components from the License and Downloads page. If you are new to Syncfusion, you can try our 30-day free trial to check out our other controls.
If you have any queries or require clarifications, please let us know in the comments section below. You can also contact us through our support forums, Direct-Trac, or feedback portal. We are always happy to assist you!