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转换的时候,可能偶尔会遇到传参的问题, ...
随机推荐
- 判定元素正在插入到DOM树——DOMNodeInsertedIntoDocument
在firefox, webkit中我们可以使用DOMNodeInsertedIntoDocument事件,但这个事件很快变废弃了,虽然浏览器还是很有节操地支持它们,但哪一天不在也很难说.比如说fire ...
- 野火STM32 Flash&sd卡模拟U盘
在USB库文件mass_mal.c中添加对flash和sd读写的函数,USB库调用这些函数从而实现模拟U盘的功能 //mass_mal.c /* Includes ------------------ ...
- 好用的编辑框布局控件TdxLayoutControl
TdxLayoutControl是编辑框的容器,里面的编辑框可以自动对齐,自由拖放,异常方便.
- class-dump-z下载地址
支持MAC.Linux.Win和iOS各个版本 http://download.csdn.net/detail/yukang1989/8414567
- C++视频课程小结(3)
C++远征之封装篇(上) 章节介绍: 每章小结: 第一章:课程介绍. 按照惯例是章节的总介绍,内容明显多了很多(为了做作业我还要赶进度的说),主要说了:类和对象是本章的主角,然后还有很多配角,像数据成 ...
- JDBC 常用驱动类及url格式
1. oracle <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</ ...
- iOS Framework lipo报错 lipo: can't map input file
fatal error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ ...
- 20140102-lua binder另一只轮子的雏形
书接上一回,说到要继续丰富对类型的处理.那么如何才能做到呢,应该是要支持自定义的,所以这一回要讲的就是在前面的基础上,增加支持自定义部分,其中包含以下几个部分 函数的默认参数设置,包括有几个默认参数和 ...
- android 获取手机型号,本机电话号码,SDK版本以及firmwarw版本号(即系统版本号)
Android开发平台中,可通过TelephonyManager 获取本机号码. TelephonyManager phoneMgr=(TelephonyManager)this.getSystemS ...
- SQL Server 2008 无法保存表的更改
MS SQL Server 2008 在建完表后,如果要重新设计表,如修改字段长度,就会提示:“当用户在在SQL Server 2008企业管理器中更改表结构时,必须要先删除原来的表,然后重新创建新表 ...