1

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

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

4

1 回答 1

2

由于没有也不会发生此类事件OnFlyoutOpened OnFlyoutClosed,因此您可以收听您的 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 在讨论中的指导。

于 2020-10-31T18:02:29.257 回答