Application_Activation屏幕方向Windows手机

时间:2014-03-18 17:47:23

标签: c# windows-phone-8 popup orientation

我有一个以横向模式运行的应用程序。因此,我想要一个弹出窗口显示何时触发Applcation_activation,因此身份验证和数据更新可能在后台进行。但问题是应用程序正在横向模式下运行。

因此,如果我的应用程序在手机处于纵向模式时启动,则弹出窗口将显示如下。因此,我想确保方向正确,如果没有在代码中手动旋转。

但我无法访问this.SupportedOrientation,那么如何从事件Application_activated中显示弹出窗口?

解决方案 解决方案当然是不使用事件或只是设置一个标志,并在每个页面的navigatedTo事件处理程序中执行代码。但是,当事件存在时,这不是一种生动的方式。

感谢Anyy的建议

来自我的两个应用的屏幕截图

肖像

enter image description here

风景

enter image description here

弹出

基本简单的代码。

Popup startup =new popup();
UsercontrolScreen childpopup =new UsercontrolScreen();
startup.child = childpopup;
startup.isOpen = true;

两者的代码相同,只有孩子不同。

1 个答案:

答案 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事件中再次添加它。