Search code examples
wpfaeromaximizeavalondock

Maximize and Aero snap on DockableFloatingWindow


I have the following code to give a undocked floating AvalonDock window the ability to maximize:

class MaximizableDockableContent : AvalonDock.DockableContent
{
    public MaximizableDockableContent()
        : base()
    {
         base.StateChanged += MaximizableDockableContent_StateChanged;
    }

    private void MaximizableDockableContent_StateChanged(
        object sender, RoutedEventArgs e)
    {
        MaximizableDockableContent mdc = (MaximizableDockableContent)sender;
        if (mdc.State == DockableContentState.DockableWindow)
        {
            base.FloatingWindowSizeToContent = SizeToContent.WidthAndHeight;
            FloatingDockablePane fdp = (FloatingDockablePane)base.Parent;
            DockableFloatingWindow dfw = (DockableFloatingWindow)fdp.Parent;

            //dfw.WindowState = WindowState.Maximized;
            dfw.WindowStyle = WindowStyle.ThreeDBorderWindow;
            dfw.ResizeMode = ResizeMode.CanResize;

            //disable minimize button
            ControlBox.SetHasMinimizeButton(dfw, false);
        }
    }
}

How do I go about adding Aero Snap functionality to this?


Solution

  • For who is interested latest version of AvalonDock (version 2) natively supports floating window aero snap feature. AvalonDock 2.0 is still in beta, more info: http://avalondock.codeplex.com/ New features: http://avalondock.codeplex.com/wikipage?title=Version2Concept