WPF 之 WPF应用程序事件
当新建一个wpf应用程序,会自动生成一个App.xaml和MainWindow.xaml文件。
其中 App.xam 用来设置Application,应用程序的起始文件和资源及应用程序的一些属性和事件的设置,app.xaml.cs是处理应用程序的相关资源和事件。MainWindow.xaml是相应的窗体文件。
app.xaml及app.xaml.cs主要通过操作application对象来控制应用程序。
application对象包含的事件:
1) Activated 当应用程序成为前台应用程序时发生。
2) Deactivated 当应用程序停止作为前台应用程序时发生。
3) DispatcherUnhandledException 在异常由应用程序引发但未进行处理时发生。
4) Exit 恰好在应用程序关闭之前发生,且无法取消。
5) FragmentNavigation 当应用程序中的导航器开始导航至某个内容片断时发生,如果所需片段位于当前内容中,则导航会立即发生;或者,如果所需片段位于不同内容中,则导航会在加载了源 XAML 内容之后发生。
6) LoadCompleted 在已经加载、分析并开始呈现应用程序中的导航器导航到的内容时发生。
7) Navigated 在已经找到应用程序中的导航器要导航到的内容时发生,尽管此时该内容可能尚未完成加载。
8) Navigating 在应用程序中的导航器请求新导航时发生。
9) NavigationFailed 在应用程序中的导航器在导航到所请求内容时出现错误的情况下发生。
10) NavigationProgress 在由应用程序中的导航器管理的下载过程中定期发生,以提供导航进度信息。
11) NavigationStopped 在调用应用程序中的导航器的 StopLoading 方法时发生,或者当导航器在当前导航正在进行期间请求了一个新导航时发生。
12) SessionEnding 在用户通过注销或关闭操作系统而结束 Windows 会话时发生。
13) Startup 在调用 Application 对象的 Run 方法时发生。
以startup事件为例:
在App.xaml中做事件的绑定,在App.xaml.cs文件中添加事件的处理方法。
在App.xaml文件中:
<Application x:Class="MyFirstWPF.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="WPFWindowDeal.xaml" Startup="Application_Startup">
<Application.Resources> </Application.Resources>
</Application>
在App.xaml.cs文件中:
namespace MyFirstWPF
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
private void Application_Startup(object sender, StartupEventArgs e)
{
// 定义应用程序启动时要处理的内容
}
}
}
MainWindow为窗体文件
常用的窗体事件:
1) Show() 显示非模态窗口;
2) ShowDialog() 显示模态窗口 ;
3) Close() 关闭窗体,并释放窗体的资源 ;
4) Closing事件、Closed事件 关闭时、关闭后引发的事件,通常在Closing事件中提示用户是否退出;
5) Activate() 激活某窗体 ;
6) Activated、Deactivated事件 当窗体激动、失去焦点时引发的事件 ;
7) Loaded 窗体第一次启动时,需要加载窗体中的内容、空间等,第一次加载完成后引发该事件,通常可以在该事件中进行一些界面以及数据的初始化操作;
8) ContentRendered 在窗体的内容显示完成后引发该事件;
9) Unloaded 在窗体中的显示元素全部移除之后引发该事件,这时窗体已经接近死亡,同样可以在事件处理函数中进行资源释放等操作。
使用这些事件的方法有两种:
第一种:在前台声名,后台写相应的方法:
<Window x:Class="MyFirstWPF.WPFWindowDeal"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="WPFWindowDeal" Height="370" Width="405" Loaded="wndMain_Loaded" >
<Canvas>
<TextBlock Canvas.Right="347" Canvas.Bottom="298" Height="21" Text="播£¤放¤?" Name="txtDate"/>
</Canvas>
</Window>
后台代码:
void WPFWindowDeal_Loaded(object sender, RoutedEventArgs e)
{
txtDate.Text = "测试。。。";
}
第二种:在后台中注册委托事件
this.Loaded += new RoutedEventHandler(WPFWindowDeal_Loaded); void WPFWindowDeal_Loaded(object sender, RoutedEventArgs e)
{
myMedia.Source = new Uri(@"..\Source\XianJian.wmv", UriKind.Relative);
txtDate.Text = "开a始º?播£¤放¤?。¡ê。¡ê。¡ê。¡ê。¡ê";
myMedia.Play();
isPlaying = true;
}
WPF 之 WPF应用程序事件的更多相关文章
- WPF 为资源字典 添加事件响应的后台类
原文:WPF 为资源字典 添加事件响应的后台类 前言,有许多同学在写WPF程序时在资源字典里加入了其它控件,但又想写事件来控制这个控件,但是资源字典没有CS文件,不像窗体XAML还有一个后台的CS文件 ...
- 【炫丽】从0开始做一个WPF+Blazor对话小程序
大家好,我是沙漠尽头的狼. .NET是免费,跨平台,开源,用于构建所有应用的开发人员平台. 本文演示如何在WPF中使用Blazor开发漂亮的UI,为客户端开发注入新活力. 注 要使WPF支持Blazo ...
- WCF/WPF公司内部订餐程序开发
WCF/WPF公司内部订餐程序开发 (服务端篇) 上班的第一天,群里讨论关于订餐的问题,所以想到了要不要自己开发一个公司内部的订餐系统呢?方便公司内部员工的订餐,有了想法就简单的实践了下 . 实现还是 ...
- wpf自定义控件中使用自定义事件
wpf自定义控件中使用自定义事件 1 创建自定义控件及自定义事件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2 ...
- 在VS2005中设置WPF中自定义按钮的事件
原文:在VS2005中设置WPF中自定义按钮的事件 上篇讲了如何在Blend中绘制圆角矩形(http://blog.csdn.net/johnsuna/archive/2007/08/13/17407 ...
- WPF:如何为程序添加splashScreen?
原文:WPF:如何为程序添加splashScreen? 大家是否还记得在Windows Forms程序中如何实现splashScreen吗?我们一般都会使用Microsoft.VisualBasic. ...
- 【WPF】WPF截屏
原文:[WPF]WPF截屏 引言 .NET的截图控件在网上流传得不多啊,难得发现一个精品截图控件( 传送门),但是无奈是winform的.后来又找到一个周银辉做的WPF截图(继续传送门),发现截屏是实 ...
- 微信小程序事件
微信小程序事件1.什么是事件2.事件类别3.事件冒泡4.事件绑定5.事件对象详解笔记:1.事件是一种用户的行为,是一种通讯方式.2.事件类别: 点击事件:tap 长按事件:longtap ...
- Qt状态机框架(状态机就开始异步的运行了,也就是说,它成为了我们应用程序事件循环的一部分了)
状态机框架 Qt中的状态机框架为我们提供了很多的API和类,使我们能更容易的在自己的应用程序中集成状态动画.这个框架是和Qt的元对象系统机密结合在一起的.比如,各个状态之间的转换是通过信号触发的,状态 ...
- 【WPF】wpf用MultiBinding解决Converter需要动态传参的问题,以Button为例
原文:[WPF]wpf用MultiBinding解决Converter需要动态传参的问题,以Button为例 用Binding并通过Converter转换的时候,可能偶尔会遇到传参的问题, ...
随机推荐
- python 字符串,数组,元祖操作基础巩固。
由于上个星期有点忙,没时间来抽空记一些有用的东西.丢了比较久的python很多忘记的小操作我也会重新捡起来 以前最容易搞混的 str.split() #操作会生成一个数组对象.example:'lap ...
- jquery对象和js对象,以及它们的互相转换
jq对象无法使用DOM对象的方法,互相都不能用 ***jq对象转换成DOM对象的2中方法 1.$('div')[0下标]:jq对象是类似数组对象有长度,所以可以通过下标查找到它的DOM对象 2.$(' ...
- 深入.Net字符串类型
.Net的字符串其实还是有很多东西可以写的.但是最近在学习SQL Server,只好先做下最近学习到的一些巧用,妙用之类的东西. 巧用String.Join拼接字串数组,字符串集合为字符串.如果在之前 ...
- 转】MySQL客户端输出窗口显示中文乱码问题解决办法
原博文出自于: http://www.cnblogs.com/xdp-gacl/p/4008095.html 感谢! 最近发现,在MySQL的dos客户端输出窗口中查询表中的数据时,表中的中文数据都显 ...
- 如何判断Android设备是手机还是平板?
转自:http://blog.csdn.net/zuolongsnail/article/details/8682950 Android开发需要适配手机和平板,有些需求在实现中就要判断设备是手机还是平 ...
- GLSL Notes
[GLSL Notes] API of shader: glCreateShader(), glShaderSource(), glCompileShader(), glGetShadrInfoLog ...
- 随笔2 PAT1001.A+B Format (20)
1001.A+B Format(20) 题目链接 1001.A+B Format (20) C++ 代码 第一次使用markdown,还不是很习惯,现在努力的在适应它 首先这道题我们很容易就可以读懂题 ...
- HDU 4499 Cannon (暴力求解)
题意:给定一个n*m个棋盘,放上一些棋子,问你最多能放几个炮(中国象棋中的炮). 析:其实很简单,因为棋盘才是5*5最大,那么直接暴力就行,可以看成一行,很水,时间很短,才62ms. 代码如下: #i ...
- 使用Map List 封装json数据
<dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</art ...
- lighttpd fastcgi的搭建
公司很久以前有个task需要在板子上搭建个webserver以响应局域网内手机的请求. 以前是用lighttpd plugin实现的,后来仔细想想用fast cgi来弄也可以. 在install li ...