我想在魅力栏打开时解雇我的弹出窗口。我以为会有一个事件表明魅力已被打开,但事实并非如此。由于魅力栏被打开,解雇弹出的正确方法是什么?
(C#,XAML app)
答案 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;
}
}
}