WPF学习旅程(壹)——WPF的入门

最近比较空闲,在博客园看了神殿骑士的WPF系列,遂引发了学习WPF的强烈兴趣,到目前,已经看了五篇,为了避免忘记,故将学到的东西记下,以后在学习的路上要有什么心得和体会也一并写下,希望自己能坚持下来,不管以后多忙!!!

 一、WPF应用程序的启动

WPF应用程序的启动由Application来管理,即app.xmal和app.xaml.cs,启动方式有两种:1、可以在app.xma中定义  App.xaml文件的内容大致如下所示:  

7-4-2010 4-00-27 PM 

 2、在app.xmal.cs中代码编写启动,代码示例如下:

ExpandedBlockStart.gif 代码
using  System;
using  System.Collections.Generic;
using  System.Configuration;
using  System.Data;
using  System.Linq;
using  System.Windows;

namespace  WPFApplications
{
    
///   <summary>
    
///  Interaction logic for App.xaml
    
///   </summary>
     public   partial   class  App : Application
    {
        [STAThread]
        
static   void  Main()
        {
            
//  定义Application对象作为整个应用程序入口  
            Application app  =   new  Application();
            
//  方法一:调用Run方法,参数为启动的窗体对象 ,也是最常用的方法 
            Window2 win  =   new  Window2();
            app.Run(win);

            
//  方法二:指定Application对象的MainWindow属性为启动窗体,然后调用无参数的Run方法  
            
// Window2 win = new Window2();  
            
// app.MainWindow = win; 
            
// win.Show();       
            
//  win.Show()是必须的,否则无法显示窗体
            
// app.Run();  

            
//  方法三:通过Url的方式启动
            
// app.StartupUri = new Uri("Window2.xaml", UriKind.Relative); 
            
// app.Run();
        }
    }
}

 


二、WPF应用程序的关闭 

OnLastWindowClose(默认值):最后一个窗体关闭或调用Application对象的Shutdown() 方法时,应用程序关闭。
OnMainWindowClose启动窗体关闭或调用Application对象的Shutdown()方法时,应用程序关闭。(和C#的Windows应用程序的关闭模式比较类似)
OnExplicitShutdown只有在调用Application对象的Shutdown()方法时,应用程序才会关闭。

 以上关闭选项既可以在xaml中更改

<Application x:Class="WPFApplications.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="Window2.xaml"
ShutdownMode="OnExplicitShutdown">
<
Application.Resources>
</
Application.Resources>
</Application>

也可以在后台代码文件中进行更改但必须注意这个设置写在app.Run()方法之前 ,如下代码:

app.ShutdownMode = ShutdownMode .OnExplicitShutdown;

app.Run(win);

 三、Application对象的事件

 

名称

描述

Activated

当应用程序成为前台应用程序时发生,即获取焦点。

Deactivated

当应用程序停止作为前台应用程序时发生,即失去焦点。

DispatcherUnhandledException

在异常由应用程序引发但未进行处理时发生。

Exit

正好在应用程序关闭之前发生,且无法取消。

FragmentNavigation

当应用程序中的导航器开始导航至某个内容片断时发生,如果所需片段位于当前内容中,则导航会立即发生;或者,如果所需片段位于不同 内容中,则导航会在加载了源 XAML 内容之后发生。

LoadCompleted

在已经加载、分析并开始呈现应用程序中的导航器导航到的内容时发生。

Navigated

在已经找到应用程序中的导航器要导航到的内容时发生,尽管此时该内容可能尚未完成加载。

Navigating

在应用程序中的导航器请求新导航时发生。

NavigationFailed

在应用程序中的导航器在导航到所请求内容时出现错误的情况下发生。

NavigationProgress

在由应用程序中的导航器管理的下载过程中定期发生,以提供导航进度信息。

NavigationStopped

在调用应用程序中的导航器的 StopLoading 方法时发生,或者当导航器在当前导航正在进行期间请求了一个新导航时发生(没大用到)。

SessionEnding

在用户通过注销或关闭操作系统而结束 Windows 会话时发生。

Startup

在调用 Application 对象的 Run 方法时发生。


 应用程序的事件处理可以:1、在App.xaml中做事件的绑定,在App.xaml.cs文件中添加事件的处理方法;2、在自定义的类中可以做正常的C#的事件绑定。

四、WPF应用程序生存周期

 image

当然这幅图也只是简单的概括了WPF的执行顺序和生命周期,具体还要细致研究才是。

 

 

转载于:https://www.cnblogs.com/weishuai/archive/2010/07/23/1783643.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值