【问题标题】:How do I know that the charms bar has been opened?我怎么知道魅力栏已经打开?
【发布时间】:2013-08-14 02:23:54
【问题描述】:

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

(C#,XAML 应用程序)

【问题讨论】:

    标签: c# xaml windows-8


    【解决方案1】:

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

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

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

    【讨论】:

    • 嗯 - 我看到的行为是,当魅力栏打开时,应用程序会关闭它们的弹出窗口。那我该怎么做呢?
    • 这是 Popup 控件的开箱即用行为。它会被 Windows 自动关闭。
    • 对不起 - 我很困惑。我正在使用 Popup 控件,它不会自动关闭。
    • 此行为通过以下方式启用:popup.IsLightDismissEnabled = true;
    • 啊!没看到这个楼盘。谢谢!将进一步调查。
    【解决方案2】:

    您应该使用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;
                }
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-05
      • 1970-01-01
      • 1970-01-01
      • 2012-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多