Change docked window's state to maximize or minimize with double click

Hi Syncfusion,

I want to toggle docked window's state to maximize or minimize when double click on  the dockheader.  

Can you help me?

5 Replies 1 reply marked as answer

BR Bharathi Rajakantham Syncfusion Team June 21, 2021 09:25 AM UTC

Hi Sungjin, 
 
Thanks for contacting Syncfusion Support. 
 
We have checked the reported query with the Docking manager from our end. The NativeFloatWindow will moved to maximized or restored window state if the DoubleClickAction property is set as MaximizeOrRestore while double clicking on header only when its CanFloatMaximize attached property is true. The default value of the DoubleClickAction property is DockOrFloat. Please Check the sample and documentation for your reference. 
 
Code Snippet: 
 
<syncfusion:DockingManager x:Name="dockingManager" UseNativeFloatWindow="True" DoubleClickAction="MaximizeOrRestore"> 
            <ContentControl x:Name="Dock1" syncfusion:DockingManager.Header="Dock1" syncfusion:DockingManager.State="Float" syncfusion:DockingManager.CanFloatMaximize="True"/> 
            <ContentControl x:Name="Dock2" syncfusion:DockingManager.Header="Dock2"/> 
            <ContentControl x:Name="Dock3" syncfusion:DockingManager.Header="Dock3"/> 
            <ContentControl x:Name="Dock4" syncfusion:DockingManager.Header="Dock4"/> 
</syncfusion:DockingManager> 
 
 
 
Please let us know if you need any further assistance on this. We will be glad to assist you. 
 
Regards, 
Bharathi R 



SU sungjin June 21, 2021 09:38 AM UTC

Thank you for reply.

I want to change state of the "docked" window, not 'floating' window. 


SyncDockingManager.MaximizeButtonEnabled = true;

SyncDockingManager.MaximizeMode = MaximizeMode.FullScreen;


makes the maximize button enabled, but the button is too small to touch it. 

so I want to maximize the window by double clicking the header. Is it possible?


regards, 

sungjin



BR Bharathi Rajakantham Syncfusion Team June 22, 2021 03:14 PM UTC

Hi Sungjin, 
 
Thanks for your update. 
 
DockingManager doesn’t have direct support for your requirement, so prepared sample to maximize or minimize when double click on the dockheader. Please check the sample for reference. 
 
 
Code Snippet: 
 
 
<syncfusion:DockingManager 
            x:Name="dockingManager1" 
            Grid.Row="1" 
            Grid.Column="1" 
            DockFill="True" 
            MaximizeButtonEnabled="True" 
            MinimizeButtonEnabled="True"> 
            <ContentControl 
                x:Name="Item11" 
                syncfusion:DockingManager.CanFloat="False" 
                syncfusion:DockingManager.CanMaximize="True" 
                syncfusion:DockingManager.CanMinimize="True" 
                syncfusion:DockingManager.Header="DockTab1" /> 
            <ContentControl 
                x:Name="Item12" 
                syncfusion:DockingManager.CanFloat="False" 
                syncfusion:DockingManager.CanMaximize="True" 
                syncfusion:DockingManager.CanMinimize="True" 
                syncfusion:DockingManager.Header="DockTab2" /> 
            <ContentControl 
                x:Name="Item13" 
                syncfusion:DockingManager.CanFloat="False" 
                syncfusion:DockingManager.CanMaximize="True" 
                syncfusion:DockingManager.CanMinimize="True" 
                syncfusion:DockingManager.Header="DockTab3" /> 
            <ContentControl 
                x:Name="Item14" 
                syncfusion:DockingManager.CanFloat="False" 
                syncfusion:DockingManager.CanMaximize="True" 
                syncfusion:DockingManager.CanMinimize="True" 
                syncfusion:DockingManager.Header="DockTab4" /> 
            <ContentControl 
                x:Name="Item15" 
                syncfusion:DockingManager.CanFloat="False" 
                syncfusion:DockingManager.CanMaximize="True" 
                syncfusion:DockingManager.CanMinimize="True" 
                syncfusion:DockingManager.Header="DockTab5" /> 
        </syncfusion:DockingManager> 
 
this.AddHandler(DockHeaderPresenter.MouseDoubleClickEvent, new RoutedEventHandler(MouseDoubleClick), true); 
         
private void MouseDoubleClick(object sender, RoutedEventArgs e) 
        { 
            if (!maximize) 
            { 
                minimize = false; 
                dockingManager1.ExecuteMaximize(dockingManager1.ActiveWindow); 
                maximize = true; 
            } 
            else if (!minimize) 
            { 
                maximize = false; 
                dockingManager1.ExecuteMinimize(dockingManager1.ActiveWindow); 
                minimize = true; 
            } 
        } 
 
 
Please try the above solution and let us know if you need any further assistance on this. We will be glad to assist you. 
 
Regards, 
Bharathi R 


Marked as answer

SU sungjin July 9, 2021 11:08 AM UTC

Thank you very much

It is very helpful.



SN Sudharsan Narayanan Syncfusion Team July 12, 2021 06:47 AM UTC

Hi Sungjin,

 
We are glad to know that your issue has been fixed. Please let us know if you need any other assistance. We will be happy to assist you. 
 
Regards,
Sudharsan N


Loader.
Up arrow icon