zoukankan      html  css  js  c++  java
  • 创建一个自定义的Application类

    由于每个应用程序必须创建一个Application对象,vs为开发人员提供了模板来减轻开发人员的重复工作。当使用vs创建一个WPF应用程序是,vs会自动创建一个app.xaml文件,

    <Application x:Class="WpfApplication8.App"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 xmlns:local="clr-namespace:WpfApplication8"
                 StartupUri="MainWindow.xaml">
        <Application.Resources>
             
        </Application.Resources>
    </Application>

    声明代码中的startupUri属性用于指定将要作为应用程序主窗口的XAML文件,这个app.xaml文件同样也具有一个后置文件,与XAML代码想关联的后置文件

    派生自XAML根元素的派生类。因此从app.xaml.cs中可以看到,app类是一个派生自Application类的派生类,但是让人好奇的是,后置代码并没有发现Main方法,也没有看到实例化

    Application类的代码。

      与MainWindow.xaml一样,vs自动为app.xaml产生了一个局部类名为App.g.cs。在应用程序编译后,可以从objDebug文件夹下找到这个文件。App.g.cs的源代码如下

    public partial class App : System.Windows.Application {
            
            /// <summary>
            /// InitializeComponent  方法自动生成的代码
            /// </summary>
            [System.Diagnostics.DebuggerNonUserCodeAttribute()]
            [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
            public void InitializeComponent() {
                
                #line 5 "....App.xaml"
                this.StartupUri = new System.Uri("MainWindow.xaml", System.UriKind.Relative);
                
                #line default
                #line hidden
            }
            
            /// <summary>
            /// Application Entry Point.
            /// </summary>
            /// vs足底报告生成的应用程序的入口点
            [System.STAThreadAttribute()]
            [System.Diagnostics.DebuggerNonUserCodeAttribute()]
            [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
            public static void Main() {
                //创建一个派生子Application类的实例
                WpfApplication8.App app = new WpfApplication8.App();
                app.InitializeComponent();
                app.Run();
            }
        }
    }

    在这个自动生成的局部类,可以看到产生了一个Main方法来作为应用程序的入口点,Main方法首先实例化一个App对象,紧接着调用了静态的InitializeComponent方法。在该方法中,只是为了Application类设置了Startup属性,为该属性

    赋予一个相对路径的XAML文件的URI。

      

  • 相关阅读:
    LeetCode 81 Search in Rotated Sorted Array II(循环有序数组中的查找问题)
    LeetCode 80 Remove Duplicates from Sorted Array II(移除数组中出现两次以上的元素)
    LeetCode 79 Word Search(单词查找)
    LeetCode 78 Subsets (所有子集)
    LeetCode 77 Combinations(排列组合)
    LeetCode 50 Pow(x, n) (实现幂运算)
    LeetCode 49 Group Anagrams(字符串分组)
    LeetCode 48 Rotate Image(2D图像旋转问题)
    LeetCode 47 Permutations II(全排列)
    LeetCode 46 Permutations(全排列问题)
  • 原文地址:https://www.cnblogs.com/xiaowie/p/9310949.html
Copyright © 2011-2022 走看看