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转换的时候,可能偶尔会遇到传参的问题, ...
随机推荐
- ntpd和ntpdate
以无GUI 的Ubuntu 为例 1. ntpdate ntpdate是Ubuntu发行版的标配.按Ubuntu14.04的官方文档(这里),Ubuntu在启动时,会调用ntpdate,根据Ubunt ...
- 使用IIS6.0遇到问题后,常用的几种解决方法
1.检查 .Net Framework,是否安装完全,不确定的情况下使用:aspnet_regiis.exe -i 或者 aspnet_regiis.exe -r 2.检查 IIS 6.0 其它相关配 ...
- js上三行下三行和添加多个附件
function addTr(num) { no ++; var obj = document.getElementById(tableID); var oneRow = obj.insertRow( ...
- centos安装postfixadmin
postfixadmin的安装,跟普通网站安装没什么区别 配置好虚拟目录,然后在数据库中创建数据库postfix 修改config.inc.php文件,详细搜索谷歌 访问http://www.你的域名 ...
- HTML5简介及HTML5的发展前景
WEB技术发展越来越迅速,HTML5的到来更是把WEB技术推向了巅峰,目前HTML5技术已经日趋成熟,不仅在PC段,HTML5更是在移动终端上也有广泛的应用,HTML5的未来十分光明,值得我们去学习. ...
- POJ 2378 Tree Cutting (DFS)
题目链接:http://poj.org/problem?id=2378 一棵树,去掉一个点剩下的每棵子树节点数不超过n/2.问有哪些这样的点,并按照顺序输出. dfs回溯即可. //#pragma c ...
- kindeditor html代码过滤不能保存
这是因为编辑器默认开启了过滤模式(filterMode:true).当filterMode为true时,编辑器会根据htmlTags设定自动过滤HTML代码,主要是为了生成干净的代码.如果想保留所有H ...
- Max retries exceeded with url
78 Traceback (most recent call last): File "thread072413.py", line 163, in <module> ...
- OC三种方法实现定时器
在软件开发过程中,我们常常需要在某个时间后执行某个方法,或者是按照某个周期一直执行某个方法.在这个时候,我们就需要用到定时器. 在iOS中有很多方法完成定时器的任务,例如 NSTimer.CADisp ...
- EasyMock 使用方法与原理剖析
from:http://www.ibm.com/developerworks/cn/opensource/os-cn-easymock/ Mock 方法是单元测试中常见的一种技术,它的主要作用是模拟一 ...