当魅力栏打开时,我想关闭我的弹出窗口。我以为会有一个事件说魅力已经打开,但事实并非如此。由于魅力栏打开了而取消弹出窗口的正确方法是什么?
(C#、XAML 应用程序)
(目前)无法检测魅力栏何时打开。只有当用户点击魅力按钮时,您才会收到通知。
这是一个很好的行为,因为用户可以打开超级按钮栏来查看日期/时间,然后将其关闭以返回您的应用程序。所以,你不会因为它被打开而改变任何东西。
当用户点击一个超级按钮时,Windows 会自动关闭任何打开的具有 IsLightDismissEnabled == true 的弹出窗口。
你应该使用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;
}
}
}