我所拥有的是:
<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>
我可能会丢失一些东西,因为我真的很惊讶,没有内置属性或检查控件的
FlyoutBase.AttachedFlyout
是否打开的方法。有没有像下面提到的代码这样的简单方法来实现这一目标?
if(MenuFlyout.GetAttachedFlyout(MyGrid).IsOpen)
{
// do something
}
最佳答案
不幸的是,IsOpen
没有像MenuFlyout
这样的属性。不要问我为什么!
这有点难看,但是您可以通过以下方式实现检查:
bool isMenuOpened;
MenuFlyout.GetAttachedFlyout(MyGrid).Opened += (sender, e) => isMenuOpened = true;
MenuFlyout.GetAttachedFlyout(MyGrid).Closed += (sender, e) => isMenuOpened = false;