我有一个以横向模式运行的应用程序。因此,我想要一个弹出窗口显示何时触发Applcation_activation,因此身份验证和数据更新可能在后台进行。但问题是应用程序正在横向模式下运行。
因此,如果我的应用程序在手机处于纵向模式时启动,则弹出窗口将显示如下。因此,我想确保方向正确,如果没有在代码中手动旋转。
但我无法访问this.SupportedOrientation,那么如何从事件Application_activated中显示弹出窗口?
解决方案 解决方案当然是不使用事件或只是设置一个标志,并在每个页面的navigatedTo事件处理程序中执行代码。但是,当事件存在时,这不是一种生动的方式。
感谢Anyy的建议
来自我的两个应用的屏幕截图
肖像
风景
弹出
基本简单的代码。
Popup startup =new popup();
UsercontrolScreen childpopup =new UsercontrolScreen();
startup.child = childpopup;
startup.isOpen = true;
两者的代码相同,只有孩子不同。
答案 0 :(得分:1)
如果您要在App类中添加叠加层,并始终将其置于方向,请将其直接添加到页面内容
private void Application_Activated(object sender, ActivatedEventArgs e)
{
var activePage = (PhoneApplicationPage) RootFrame.Content;
var pageContent = (Grid) activePage.Content;
UsercontrolScreen childpopup = new UsercontrolScreen();
Grid.SetRowSpan(childpopup , pageContent.RowDefinitions.Count);
pageContent.Children.Add(childpopup );
}
使用此方法,您还需要删除内容。可能在控件上有一个X按钮可以自行删除,或者可能触发Closed
事件,以便App可以将其从网格中删除。您还需要在Deactivated事件中删除控件。或者,如果已停用两次,则不会在Activated事件中再次添加它。