zoukankan      html  css  js  c++  java
  • WPF入门教程系列二——Application介绍

    一.Application介绍

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

    微软把WPF中经常使用的功能都封装在 Application 类中了。 Application 类具体有以下功能: 

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

    二.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();
    
            }
    
        }
    
    }

    3. 上面的方法,最后执行的效果,如下图。

     

     
     
  • 相关阅读:
    Ubuntu 14.04 卸载通过源码安装的库
    Ubuntu 14.04 indigo 相关依赖
    Ubuntu 14.04 indigo 安装 cartographer 1.0.0
    Ubuntu 14.04 改变文件或者文件夹的拥有者
    安装cartographer遇到Unrecognized syntax identifier "proto3". This parser only recognizes "proto2"问题
    Unrecognized syntax identifier "proto3". This parser only recognizes "proto2". ”问题解决方法
    查看所有用户组,用户名
    1卸载ROS
    Ubuntu14.04 软件安装卸载
    Ubuntu14.04系统显示器不自动休眠修改
  • 原文地址:https://www.cnblogs.com/Im-Victor/p/10564962.html
Copyright © 2011-2022 走看看