检测 Shell Flyout 是不是打开

Posted

技术标签:

【中文标题】检测 Shell Flyout 是不是打开【英文标题】:Detect if Shell Flyout is open检测 Shell Flyout 是否打开 【发布时间】:2020-08-03 11:40:49 【问题描述】:

有什么方法可以处理打开 Flyout 吗? 我正在尝试在打开期间或打开 Flyout 之后添加自定义行为。

我找不到任何类型的财产,例如 Shell.OnFlyoutOpening="flyout_opening"

【问题讨论】:

【参考方案1】:

由于没有也不会出现OnFlyoutOpenedOnFlyoutClosed这样的事件,你可以监听你的ShellPropertyChanged事件,如果属性是FlyoutIsPresented然后执行你的代码:

public AppShell()

    InitializeComponent();
    PropertyChanged += Shell_PropertyChanged;


private void Shell_PropertyChanged(object sender, PropertyChangedEventArgs e)

    if (e.PropertyName.Equals("FlyoutIsPresented"))
        if (FlyoutIsPresented)
            OnFlyoutOpened();
        else
            OnFlyoutClosed();

根据您的要求,您将定义 OnFlyoutOpened()OnFlyoutClosed() 方法。

感谢@PureWeen 在discussion 中的指导。

【讨论】:

如果它确实回答了您的问题,请accept✅it。

以上是关于检测 Shell Flyout 是不是打开的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin Form Shell:Flyout 和 TabBar - 仅在 TabBar 中隐藏项目?

如何将 App Shell 与每页不同的 Flyout 项目一起使用

Xamarin.Forms Shell 在汉堡菜单中将 Flyout Menu 与 MenuItem 组合并排序

防止 Flyout 动态打开

底部的 Xamarin Forms Flyout 菜单

Xamarin.Forms 使用 Flyout/Menu Item 作为标题并自定义 BG 颜色和文本颜色