我怎么知道魅力酒吧已被打开?

时间:2012-10-17 18:54:26

标签: c# xaml windows-8

我想在魅力栏打开时解雇我的弹出窗口。我以为会有一个事件表明魅力已被打开,但事实并非如此。由于魅力栏被打开,解雇弹出的正确方法是什么?

(C#,XAML app)

2 个答案:

答案 0 :(得分:3)

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

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

当用户点击一个魅力按钮时,Windows会自动关闭任何具有IsLightDismissEnabled == true的打开的Popup。

答案 1 :(得分: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;
            }
        }
    }
相关问题