属性、事件分析

属性:普通属性,CLR属性,依赖属性;

普通属性:即.net2.0时代的常规属性

CLR属性:它是用于向外界暴漏 依赖属性 的外包装

依赖属性:字段属性

普通属性与CLR属性在“上层”使用上几乎没有区别,只是在属性的定义细节上存在区别,CLR属性是针对依赖属性的外包装,其访问器 封装了 GetValue和SetValue方法;而普通属性仅仅封装了“对应的私有字段”

事件:直接事件,CLR事件,路由事件

直接事件:即.net2.0时代的常规事件

CLR事件:它是用于向外界暴漏 路由事件 的外包装

路由事件:字段事件

直接事件与CLR事件在“上层”使用上几乎没有区别,只是在事件的定义细节上存在区别,CLR事件是针对路由事件的外包装,其  “声明”  的代码体 封装了 AddHandler和RemoveHandler方法;而直接事件仅仅是使用  “Event和委托”    "声明"   一个事件而已。

路由事件的激发/触发:路由事件 “激发时” 携带的消息    放在    路由事件参数(RoutedEventArgs)里,并将该参数实例与“路由事件”相关联,然后调用元素的RaiseEvent方法(继承自UIElement)并传入“路由事件参数实例” 把事件发送出去;可见,这个过程与CLR事件(或直接事件)完全不同。

时间: 2024-10-07 19:19:56

属性、事件分析的相关文章

【Android 1.6】View和ViewGroup的touch事件分析和总结

ENV: android 1.6 目前Android版本已经到了7.0(nougat)了,Android 随着版本升级,touch事件的源码也在跟随着系统的升级而写得越来越复杂,加入了很多旁枝末节,这些旁枝末节,对于分析流程是一种干扰:由于Android的版本升级是向下兼容的,万变不离其宗,研究Android早期的版本,可以更容易理解touch事件的分发,本篇以Android1.6版本的源码进行讲解,由简及繁,理解了早期的源码,再进入高版本的研究也会更容易许多. 前言: View事件的派发其实非

质量属性的六个常见属性场景分析

六个最常见的系统质量属性分别是:可用性(Availability).可修改性(Modifiability).性能(Performance).安全性(Security).可测试性(Testability).易用性(Usability). 刻画质量属性的手段由六部分组成:刺激源.刺激.环境.制品.响应.响应度量:以一种统一规范的方式表示"质量属性"的需求 现在以<淘宝网>为例,对着六个质量属性进行分析 1.可用性:可用性与系统故障及其相关后果有关,当系统不再提供其规范中所说明的

跨浏览器resize事件分析

resize事件 原生事件分析 window一次resize事件: IE7 触发3次, IE8 触发2次, IE9 触发1次, IE10 触发1次 Chrome 触发1次 FF 触发2次 Opera 触发1次 Safari 触发1次 场景分析 window resize时,部分组件需要重置大小(一次):部分组件不需要重置大小: 开源库分析 jquery-resize 优点:使用简便 $('#div1').on('resize', function (e) { console.log('[div1

android:clipChildren属性的分析——是否剪裁子View

MainActivity如下: package cc.testclipchildren; import android.os.Bundle; import android.app.Activity; /** * android:clipChildren属性的分析 * 该属性默认值为android:clipChildren="true" * 单从字面意思理解clipChildren的意思是:裁剪(缩短)孩子 * 我们将其值设置为false后那么当子控件的高度高于父控件时 * 也会完全显示

android:clipToPadding属性的分析——以ListView的&quot;别样&quot;padding为例

MainActivity如下: package cn.com.bravesoft.testlistviewloadmore; import java.util.ArrayList; import java.util.HashMap; import android.app.Activity; import android.os.Bundle; import android.widget.ListView; import android.widget.SimpleAdapter; /** * Dem

Android中Preference的使用以及监听事件分析

> 在Android系统源码中,绝大多数应用程序的UI布局采用了Preference的布局结构,而不是我们平时在模拟器中构建应用程序时使用的View布局结构,例如,Setting模块中布局.当然,凡事都有例外,FMRadio应用程序中则使用了View布局结构(可能是该应用程序是marvel公司提供的,如果由google公司做,那可说不准).归根到底,Preference布局结构和View的布局结构本质上还是大同小异,Preference的优点在于布局界面的可控性和高效率以及可存储值的简洁性(每个

某游戏公司后台数据库SQL注入事件分析

某游戏公司后台数据库SQL注入事件分析 人物关系简介 Blank –SA Dawn(Boss) Ryan –DBA Fred –离开公司的安全顾问 本案例出自于<Unix/Linux网络日志分析与流量监控>一书,该事例详细描述了一家公司的后台服务器被入侵,黑客从中获取了大量游戏币帐号,并发送邮件相威胁的案例.主要遇到的问题是服务器被SQL注入或受到了SQL注入攻击 Blank是XX公司的网络架构师,技术好人缘也不错,他实际的工作室XX公司的"首席救火队员",每件事他都要自己

如何使用virtual/override在属性事件以及索引上

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace nange_1 { class A { private int myint = 5; virtual public int Myint { get { return myint; } } } class B : A { private int myint = 10; override public int

DuiLib事件分析(一)——鼠标事件响应

最近在处理DuiLib中自定义列表行元素事件,因为处理方案得不到较好的效果,于是只好一层一层的去剥离DuiLib事件是怎么来的,看能否在某一层截取消息,自己重写. 我这里使用CListContainerElementUI行元素,元素中有插入button,平时行元素不显示,鼠标移动上去显示出来,鼠标移走就隐藏button.Duilib自己是不带这个功能的,它有一个鼠标移动上去的热点事件,按理说重写热点事件就好了.但是当时比较急没找到怎么触发的,之后一直没继续走这条思路.后来找到源码事件里面有 vo

【转载+整理】Android中TouchEvent事件分析

原文地址:http://mobile.51cto.com/abased-374715.htm 一.知识回顾 一个最简单的屏幕触摸动作触发了一系列Touch事件:ACTION_DOWN->ACTION_MOVE->ACTION_MOVE->ACTION_MOVE...->ACTION_MOVE->ACTION_UP 二.问题提出 当屏幕中包含一个ViewGroup,而这个ViewGroup又包含一个子view,这个时候android系统如何处理Touch事件呢?到底是 View