注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

分享,态度 ·~~

—— 十年太长,五年;如果可以回到五年前,你最想对那时候的自己说什么?

 
 
 

日志

 
 

WPF:Application简介  

2010-05-17 10:57:39|  分类: DotNet |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

      Application是一个地址空间,在WPF中应用程序就是在System.Windows命名空间下的一个Application实例。一个应用程序只能对应一个Application的实例,而Application的生命周期自然是从运用程序启动到终止的周期。

      Application的创建

      Application的创建分为显式和隐式两种方式

显示创建Application
using System;
using System.Windows;

Class Program
{
  [STAThread]
  
static vod main(){
    Application app 
= new Application();
    Window1 window
=new Window1();
    window.Show();
    app.run();
  }

}

       在上面的代码中,Windows1的对象即是应用程序的主窗体调用,这类似与2.0中的Program.cs文件中的run(new Windows1()),在创建Application对象的时候,会对Application静态属性Current赋予新创建的对象,所以app.run()也可以替换成Application.Current.Run()

隐式创建Application
<!--App.xaml-->
<Application 
  x:Class
="ImplicitAppSample.App" 
  xmlns
="Http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml" />


<!--App.xaml.cs-->
using System;
using System.Windows;

namespace ImolicitAppSample{
  
public partial class App:Application{
    
protected override void OnStartup(StartupEventArgs e){
      
//let the base class have a crack
      base.OnStartup(e);
      
//
      Windows1 window=Window1();
      window.Show();
    }

  }

}

      在代码中定义一个继承与Application的类,并在类中重写Application启动时(Run方法调用时)出发的OnStartup事件对应的方法,将主窗体的实例化放在该方法中。事实上WPF中会自动创建Main函数,并依照工程文件中指定的相关Application对应所在文件app.xaml,实例化该应用程序类,并调用Run方法。除了在OnStartup时间对应分方法中指定实例化的主窗体,也可以在app.xaml文件中直接指定程序运行时实例化并显示的主窗口,如下代码:

Code
<!--App.xaml-->
<Application 
  x:Class
="ImplicitAppSample.App" 
  xmlns
="Http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml" 
  StartupUri
="Window1.xaml" />

      一个顶级窗口就是不包含或者不从属于其它窗口的窗口。Application被创建后第一个创建的顶级窗口就是主窗口,也可以通过设置MainWindow属性来改变主窗口。

Application的关闭模式有三种,分别为OnMainWindowClose、OnLastWindowClose和OnexplictShutDow。前两种枚举见名知意,前两种关闭模式也可以调用ShutDown方法来手动关闭应用程序,而最后一个模式只能调用ShutDown方法才能关闭应用程序。

      Application的事件

     Startup当Applicaton实例调用Run方法时触发;Activated和Deactivated事件,当一个窗口被激活时触发Activated试件,当应用程序被激活且另一个顶级窗口激活时触发Deactivated事件;SessionEnding事件是在窗口会话结束时调用;Exit则是应用程序退出的事件

      Aplication的单一实例应用程序

单一实例应用程序
<!--在程序运行前加入判断-->
public partial class App:Application{
    
    Mutex mutex;

    
protected override void OnStartup(StartupEventArgs e){
      
//let the base class have a crack
      base.OnStartup(e);

      
//判断
       string mutexName = "MyCompanyName.MyAppName";
      
bool CreateNew;
      mutex
=new Mutex(true,mutexName,out CreateNew);
      
if(!CreateNew)
      
{ShutDown();}

      
//
      Windows1 window=Window1();
      window.Show();
    }

 【from http://www.cnblogs.com/FlyCloud/archive/2009/04/06/1430482.html

       

  评论这张
 
阅读(3516)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017