• 星空雅梦


    WPF入门教程(二)--Application

    Application介绍

    WPF和WinForm 很相似, WPF与WinForm一样有一个 Application对象来进行一些全局的行为和操作,并且每个 Domain (应用程序域)中仅且只有一个 Application 实例存在。和 WinForm 不同的是WPF Application默认由两部分组成 : App.xaml 和 App.xaml.cs,这有点类似于 Asp.Net WebForm,将定义和行为代码相分离。 
    微软把WPF中经常使用的功能都封装在 Application 类中了。 Application 类具体有以下功能:

    1. 跟踪应用程序的生存期并与之交互。
    2. 检索和处理命令行参数。
    3. 检测和响应未经处理的异常。
    4. 共享应用程序范围的属性和资源。
    5. 管理独立应用程序中的窗口。
    6. 跟踪和管理导航。

    WPF应用程序的启动

    关于如何在Visual Studio中创建一个“WPF应用程序”,前面的文章中已经说过了。请参见WPF入门教程系列一——基础。 
    1、在Visual Studio 2013中创建一个“WPF应用程序”,使用App.xaml文件定义启动应用程序。XAML从严格意义上说并不是一个纯粹的 XML 格式文件,它更像是一种 DSL(Domain Specific Language,领域特定语言),它的所有定义都会由编译器最后编译成代码。App.xaml文件默认内容如下图: 
    这里写图片描述 
    2、当然,如果你习惯了把启动写在代码中。你也可以跟WinForm中一样,在类中定义一个Main方法来实现对WPF应用程序的启动。 
    第一步:如下图,在“解决方案资源管理器”中使用鼠标左键选中App.xaml文件,然后鼠标右键,弹出“弹出菜单—》从项目中排除”,这样就在项目中去掉了我们刚才建立的App.xaml文件。

    这里写图片描述 
    第二步:现在中添加一个新类,类名为App.cs。如下图。在“解决方案资源管理器”中使用鼠标左键选中“WpfApp1”项目,然后点击鼠标右键,弹出“弹出菜单”,按下图中所示操作。 
    这里写图片描述 
    第三步:在弹出的“添加新项”界面中,选中“类”,把名称修改为“App.cs”。如下图。 
    这里写图片描述 
    第四步:在“解决方案资源管理器”中双击App.cs(如下图),打开文件,然后可以分别写入以下三种方式的代码,进行启动效果的调试

    这里写图片描述

    第一种启动应用程序的代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows; 
    namespace WpfApp1
    
    {
        class App
        {
     [STAThread]
            static void Main()
            {
               // 定义Application对象作为整个应用程序入口  
                Application app = new Application();
                // 方法一:调用Run方法 ,这种方式跟winform的调用一样
                WindowGrid win = new WindowGrid();
                app.Run(win);
            }
        }
    }

    第二种启动应用程序的代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows;
    
    namespace WpfApp1
    {
        class App
        {
     [STAThread]
            static void Main()
            {
                // 定义Application对象作为整个应用程序入口  
                Application app = new Application();      
                 //指定Application对象的MainWindow属性为启动窗体,然后调用无参数的Run方法  
                WindowGrid win = new WindowGrid();  
                app.MainWindow = win;
                //是必须的,否则无法显示窗体       
          win.Show();                    
                app.Run();  
            }
        }
    }

    第三种启动应用程序的代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows;
    namespace WpfApp1
    {
        class App
        {
     [STAThread]
            static void Main()
            {
                // 定义Application对象作为整个应用程序入口  
                Application app = new Application();
                // 通过Url的方式启动
                app.StartupUri = new Uri("WindowGrid.xaml", UriKind.Relative);
                app.Run();
            }
        }
    }

    以上三种方法都可以使窗口运行成功

  • 相关阅读:
    现有某电商网站用户对商品的收藏数据,记录了用户收藏的商品id以及收藏日期,名为buyer_favorite1。 buyer_favorite1包含:买家id,商品id,收藏日期这三个字段,数据以“ ”分割
    面向对象程序设计中类与类的关系都有哪几种?分别用类图实例说明。
    Java为什么没有指针
    touchz,mkdir,vi的区别
    session使用方法
    迪杰斯特拉算法-文档读取数据
    数据结构---公交线路提示系统(Java后台+excel表格+web前端)
    caffe中train过程的train数据集、val数据集、test时候的test数据集区别
    caffe程序中出现的db.cpp:#line(行号) unknown database backend问题
    caffe的cancat层
  • 原文地址:https://www.cnblogs.com/LiZhongZhongY/p/10869945.html
Copyright © 2020-2023  润新知