• 多窗口切换


    使用Frame+Page的组合实现多窗口

    MainPage是一个外框,包含顶部和抽屉菜单,主体部分为空,引用newslistView.xaml。

    遇到第一个问题是如何点击newslistView里的内容,把MainPage换成contentView.xaml

    首先借鉴网上内容,在MainPage里添加一个RoutedEventHandler,用来响应newslistView里的点击动作(还需要先在newslistView.xaml.cs里创建一个public的组件,并把需要响应的组件赋值给它)。
    但是这个方法比较麻烦,要把MainPage整体包在一个Frame里,然后添加一堆代码内容。而且目前还不支持硬件的后退按钮。所以又看微软出的通用应用示例Windows-universal-samples-master/BackButton,直接使用Window.Current就可以解决页面切换的问题。

    Frame rootFrame = Window.Current.Content as Frame;  
    contentView articleFrame = new contentView();  
    temp = e.AddedItems[0] as NewsListItem;  
    (sender as ListView).SelectedItem = null;  
    Uri webLink = new Uri(temp.origin);  
    articleFrame.setAddress(webLink);  
    rootFrame.Content = articleFrame;  
    

    后退功能也使用这个示例里的方法

    public App()
    {
        //注册测试响应硬件返回事件
        if ("Windows.Mobile" == Windows.System.Profile.AnalyticsInfo.VersionInfo.DeviceFamily)
            Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed;
    }
    
    //按下硬件返回的处理
    private void HardwareButtons_BackPressed(object sender, Windows.Phone.UI.Input.BackPressedEventArgs e)
    {
        var rootFrame = Window.Current.Content as Frame;
        if (rootFrame.CanGoBack)
        {
            rootFrame.GoBack();
            e.Handled = true;
        }
    }
    

    但是这种方法需要使用Page.Navigation,我现在是设置Frame.Content,不能直接导航。

  • 相关阅读:
    一个很好用的linux下系统清理工具
    怎样将linux+qt在1S中内启动的幻灯片教程
    通过 ulimit 改善系统性能
    UBI文件系统
    利用BLCR加快Android的启动过程
    工作队列中的sleep导致控制台无法输入问题
    android system setup and building (3)
    物理地址和虚拟地址1 (MMU)
    对 makefile 中 eval 函数的学习体会
    location.href语句与火狐不兼容的问题
  • 原文地址:https://www.cnblogs.com/woodytian/p/4991114.html
Copyright © 2020-2023  润新知