在Windows 8.1中,当原生 SettingsFlyout 可见时,我点击其他位置,无论是在我的应用程序还是其他应用程序中,弹出按钮都会消失。
在手动关闭之前,有没有办法让它保持可见?我的用例 - 我想显示“登录”SettingsFlyout,当用户离开应用程序并搜索他的登录名和密码时,它不会消失。
我已经检查了MSDN pages,但没有找到“Sticky”弹出窗口的简单属性。
感谢任何提示!
答案 0 :(得分:6)
有一种方法可以在不使用带有SDK中默认控件的Callisto库的情况下完成。
public class CustomSettingsFlyout : SettingsFlyout
{
bool back = false;
private Popup popup;
public void ShowWindow()
{
ShowIndependent();
back = false;
popup = (Parent as Popup);
popup.IsLightDismissEnabled = false;
popup.Closed += Popup_Closed;
this.BackClick += CustomSettingsFlyout_BackClick;
}
void CustomSettingsFlyout_BackClick(object sender, BackClickEventArgs e)
{
back = true;
}
private void Popup_Closed(object sender, object e)
{
if (!back) popup.IsOpen = true;
}
}
现在调用ShowWindow方法在新控件上放置ShowIndependent。
CustomSettingsFlyout flyout = new CustomSettingsFlyout();
flyout.Content = new Grid();
flyout.ShowWindow();
答案 1 :(得分:1)
没有办法使用默认API使SettingsFlyout像AppBar一样“粘滞”。实现您的场景的最佳方法是制作一个类似自定义的SettingsFlyout Popup; Callisto library实现one,你可以在Popup上关闭IsLightDismissEnabled以使其“粘滞”。