Hi,
The LayoutFloatingWindowControl is a Window. Its content is a FloatingWindowContentHost, which is a HwndHost.
Based on this MSDN Technology Regions Overview (https://msdn.microsoft.com/en-us/library/aa970688(v=vs.100).aspx), there could be problems rendering WPF on top of Win32.
To prevent Maximize/Minimize... on floating Window, you can modify the Style in Generic.xaml file as you started to do.
Declare your "OVERLAY_GRID" after the "WindowBorder" so it will appear over it. It will hide to Window title's buttons.
To Disable the content of the LayoutFloatingWindowControl,
go in file Xceed.Wpf.AvalonDock/Controls/LayoutFloatingwindowControl.cs,
in class FloatingWindowContentHost,
in method BuildWindowCore
and add :
To prevent movement of LayoutFloatingWindowControl,
go in file Xceed.Wpf.AvalonDock/Controls/LayoutFloatingwindowControl.cs,
in method FilterMessage
in case Win32Helper.WM_SYSCOMMAND:
and add :
internal const int SC_MOVE = 0xF010;
The LayoutFloatingWindowControl is a Window. Its content is a FloatingWindowContentHost, which is a HwndHost.
Based on this MSDN Technology Regions Overview (https://msdn.microsoft.com/en-us/library/aa970688(v=vs.100).aspx), there could be problems rendering WPF on top of Win32.
To prevent Maximize/Minimize... on floating Window, you can modify the Style in Generic.xaml file as you started to do.
Declare your "OVERLAY_GRID" after the "WindowBorder" so it will appear over it. It will hide to Window title's buttons.
To Disable the content of the LayoutFloatingWindowControl,
go in file Xceed.Wpf.AvalonDock/Controls/LayoutFloatingwindowControl.cs,
in class FloatingWindowContentHost,
in method BuildWindowCore
and add :
_rootPresenter.IsEnabled = false;
right after _rootPresenter has been instanciated.To prevent movement of LayoutFloatingWindowControl,
go in file Xceed.Wpf.AvalonDock/Controls/LayoutFloatingwindowControl.cs,
in method FilterMessage
in case Win32Helper.WM_SYSCOMMAND:
and add :
else if( command == Win32Helper.SC_MOVE )
{
bool canMove = true; //change to false to prevent movement
if( !canMove )
{
handled = true;
}
}
where SC_MOVE should be declared in Xceed.Wpf.AvalonDock/Win32Helper.cs as internal const int SC_MOVE = 0xF010;