• [WP]解析App.xaml文件-代码隐藏文件和启动画面


    如果你有Silverlight和C#开发经验,在Windows Phone 7上进行UI设计时,Windows Phone 7应用程序开发平台“Silverlight for Windows Phone”是Silverlight程序员必备的工具,熟悉Silverlight for Windows Phone之后同样还需要熟悉App.xaml和它的代码隐藏文件App.xaml.cs,C#代码增加了一些与手机相关的初始化代码,App类使用公共RootFrame属性对根框架提供了简单的访问。

    1. public PhoneApplicationFrame RootFrame { get; private set; }

    PhoneApplicationFrame指的是MicrosoftPhone.Controls.PhoneApplicationFrame,App.xaml.cs使用Microsoft.Phone.Controls和Microsoft.Phone.Shell命名空间,App类构造函数调用IntializePhoneApplication方法,它增加了电话相关的代码以显示启动画面,下面的代码片段显示了经典的Silverlight初始化和新的与手机相关的方法:

    1. public App()
    2. {
    3. // Global handler for uncaught exceptions.
    4. // Note that exceptions thrown by ApplicationBarItem.Click
    5. // will not get caught here.
    6. UnhandledException += Application_UnhandledException;
    7. // Standard Silverlight initialization
    8. InitializeComponent();
    9. // Phone-specific initialization
    10. InitializePhoneApplication();
    11. }

    下面的代码显示了InitializePhoneApplication和CompleteInitializePhoneApplication方法,InitializePhoneApplication方法创建新的框架,并在其中显示启动画面,直到应用程序启动完毕,CompleteInitializePhoneApplication方法将新框架设置为RootVisual,因为它要连接RootFrame.Navigated的事件处理程序,注意,不要修改这些方法:

    1. private bool phoneApplicationInitialized = false;
    2. // Do not add any additional code to this method
    3. private void InitializePhoneApplication()
    4. {
    5. if (phoneApplicationInitialized)
    6. return;
    7. // Create the frame but don't set it as RootVisual yet;
    8. // this allows the splash screen to remain active until the
    9. // application is ready to render.
    10. RootFrame = new PhoneApplicationFrame();
    11. RootFrame.Navigated += CompleteInitializePhoneApplication;
    12. // Handle navigation failures
    13. RootFrame.NavigationFailed += RootFrame_NavigationFailed;
    14. // Ensure we don't initialize again
    15. phoneApplicationInitialized = true;
    16. }
    17. // Do not add any additional code to this method
    18. private void CompleteInitializePhoneApplication(object sender,
    19. NavigationEventArgs e)
    20. {
    21. // Set the root visual to allow the application to render
    22. if (RootVisual != RootFrame)
    23. RootVisual = RootFrame;
    24. // Remove this handler since it is no longer needed
    25. RootFrame.Navigated -= CompleteInitializePhoneApplication;
    26. }

    当应用程序加载时,模拟器和设备要显示启动画面,启动画面是一个包含在项目中的24位色深,800x480像素的位图文件 - SplashScreenImage.jpg,你可以用自己的jpeg文件替换它,但注意不能修改名字,只能是SplashScreenImage.jpg,图1和图2分别显示了默认和自定义启动画面。

    默认的位图文件SplashScreenImage.jpg
    图 1 默认的位图文件SplashScreenImage.jpg

    默认的位图文件SplashScreenImage.jpg
    图 2 自定义位图文件SplashScreenImage.jpg

    启动画面必须是24位色深,分辨率为800x480像素的jpeg格式文件,如果使用PNG文件代替,将不会显示启动画面,设计自定义启动画面时要注意,用户是可以旋转设备的。

  • 相关阅读:
    【CF536D】Tavas in Kansas(博弈+动态规划)
    【CF643F】Bears and Juice(信息与可区分情况数)
    【AT3981】[ARC093D] Dark Horse(容斥+状压DP)
    【CF708E】Student's Camp(动态规划)
    【洛谷6775】[NOI2020] 制作菜品(思维好题)
    【洛谷2282】[HNOI2003] 历史年份(线段树优化DP)
    【洛谷5068】[Ynoi2015] 我回来了(线段树)
    【洛谷4117】[Ynoi2018] 五彩斑斓的世界(第二分块)
    【洛谷3745】[六省联考2017] 期末考试(水题)
    【AtCoder】AtCoder Grand Contest 050 解题报告(A~D)
  • 原文地址:https://www.cnblogs.com/webapplee/p/3767813.html
Copyright © 2020-2023  润新知