2

当魅力栏打开时,我想关闭我的弹出窗口。我以为会有一个事件说魅力已经打开,但事实并非如此。由于魅力栏打开了而取消弹出窗口的正确方法是什么?

(C#、XAML 应用程序)

4

2 回答 2

3

(目前)无法检测魅力栏何时打开。只有当用户点击魅力按钮时,您才会收到通知。

这是一个很好的行为,因为用户可以打开超级按钮栏来查看日期/时间,然后将其关闭以返回您的应用程序。所以,你不会因为它被打开而改变任何东西。

当用户点击一个超级按钮时,Windows 会自动关闭任何打开的具有 IsLightDismissEnabled == true 的弹出窗口。

于 2012-10-18T11:07:55.963 回答
1

你应该使用Window.Current.Activated += Current_Activated;. 它实际上在窗口激活更改时触发!

    void Current_Activated(object sender, WindowActivatedEventArgs e)
    {

        if (e.WindowActivationState == CoreWindowActivationState.CodeActivated)
        {
            if (BottomAppBarWasOpenBeforeCharmsActivated)
            {
                BottomAppBar.IsSticky = true;
                BottomAppBar.IsOpen = true;
                BottomAppBarWasOpenBeforeCharmsActivated = false;
            }

        }
        if (e.WindowActivationState == CoreWindowActivationState.Deactivated)
        {
            if (BottomAppBar.IsOpen == true)
            {
                BottomAppBarWasOpenBeforeCharmsActivated = true;
                BottomAppBar.IsSticky = false;
                BottomAppBar.IsOpen = false;
            }
        }
    }
于 2013-08-13T17:56:56.897 回答