2016-08-07 33 views
2

Was ich habe, ist dies:Wie kann man überprüfen, ob AttachedFlyout Open ist

<Grid x:Name="MyGrid"> 
    <FlyoutBase.AttachedFlyout> 
     <MenuFlyout Placement="Bottom"> 
      <MenuFlyoutItem Text="Item 1" /> 
      <MenuFlyoutItem Text="Item 2" /> 
      <MenuFlyoutItem Text="Item 3" /> 
     </MenuFlyout> 
    </FlyoutBase.AttachedFlyout> 
</Grid> 

ich etwas fehlen könnte, weil ich wirklich überrascht bin, dass es keine eingebaute Eigenschaft oder eine Art und Weise ist, dass, wenn die FlyoutBase.AttachedFlyout eine Steuerprüft ist offen oder nicht.

Gibt es einen einfachen Weg wie unten erwähnt Code, um dies zu erreichen?

if(MenuFlyout.GetAttachedFlyout(MyGrid).IsOpen) 
{ 
    // do something 
} 

Antwort

2

Leider gibt es keine Eigenschaft wie IsOpen für die MenuFlyout. Frag mich nicht warum!

Es ist ein bisschen hässlich, aber Sie können die Prüfung wie folgt erreichen:

bool isMenuOpened; 
MenuFlyout.GetAttachedFlyout(MyGrid).Opened += (sender, e) => isMenuOpened = true; 
MenuFlyout.GetAttachedFlyout(MyGrid).Closed += (sender, e) => isMenuOpened = false;