Show/hide Mahapps Flyout control

mskuratowski picture mskuratowski · Jun 4, 2015 · Viewed 19.1k times · Source

How can I show/hide MahApps Flyout control? Now I have:

<controls:FlyoutsControl>
    <controls:Flyout Header="Flyout" Position="Right" Width="200" IsOpen="True">
        <TextBlock FontSize="24">Hello World</TextBlock>
    </controls:Flyout>
</controls:FlyoutsControl>

And it's open, but when I click the button with arrow I can't show it again.

Answer

Hossein Narimani Rad picture Hossein Narimani Rad · Jun 4, 2015

You can simply use something like this:

yourMahAppFlyout.IsOpen = true;

Also you can bind the Flyout visibility to a WindowCommand (LeftWindowCommand/RightWindowCommand) so whenever you close the Flyout you can reopen using a ToggleButton (for example) from the top of the window.

<Controls:MetroWindow.Flyouts>
    <Controls:FlyoutsControl>
        <Controls:Flyout x:Name="yourMahAppFlyout"/>
    </Controls:FlyoutsControl>
</Controls:MetroWindow.Flyouts>

<Controls:MetroWindow.RightWindowCommands>
    <Controls:WindowCommands>
        <ToggleButton Content="Layers" 
        IsChecked="{Binding ElementName=yourMahAppFlyout, Path=IsOpen}" Cursor="Hand"/>               
    </Controls:WindowCommands>
</Controls:MetroWindow.RightWindowCommands>