JavaShuo
栏目
标签
在开发中善用自定义的Behaviors
时间 2019-11-24
标签
开发
善用
自定义
behaviors
繁體版
原文
原文链接
前言:
以前写了一篇文章是关于
经过blend快速建立具体物理特性的游戏
,其实,它只是引入了一个物理引擎,而咱们在blend进行使用的过程当中,咱们发现,只是简单的拖拽一些Behaviors属性,就达到了使人意想不到的效果,这使得做为开发和设计人员,只是简单的拖拽操做,即可以完成大量重复的工做,因此在开发过程当中,咱们得好好利用Behavior这个属性。经过它,来创造咱们本身的Behavior以达到复用的目的,本篇将介绍Behavior属性并经过一个简单的示例向你们展现如何自定义本身的Behavior。
关于
Behaviors
一个Behavior(中文通常翻译为行为),一般能够附加给界面元素特有的性质,这些性质包括:元素呈现的效果,元素和用户交互的效果。首先咱们来看一个简单的示例,来看看它是若是使用的:
首先打开Blend工具,建立一个Silverlight项目
接下来,咱们在画布上画一个圆:
而后,咱们打开Assets面板,选择Behaviors项(行为),给上面画的圆赋予一个Behavior属性:
运过项目,就能够发现,此时的圆能够用鼠标拖动了,由于,咱们给它赋予了MouseDragElementBehavior。
做为开发人员,咱们天生就有看到实现过程的天性,因而,咱们查看下代码:
咱们发现,在xaml文件中,增长了两个命名空间的引用,另外就是一个Behaviors属性的定义,已经在上图中标识出。
因而,咱们就想对这些东西探个究竟,拿出Reflector准备(这么好的东西居然要收费了,我才用没几个月呢T T)。不过在查看以前,咱们仍是先来熟悉下几个相关的命名空间:
Microsoft.Expression.Interactions
命名空间下主要存放了Behavours, triggers 和 actions相关的东西。与之相关的文件默认在
C:\Program Files\Microsoft SDKs\Expression\YourBlendVersion\Silverlight\v4 .0\Libraries
文件夹下,这里以blend4为例,其它版本可能略有不一样。在这个文件夹下,咱们能够找到Microsoft.Expression.Interactions.dll文件。找到了,咱们就reflect下它,因而咱们便能找到以下所示:
咱们能够很清楚的看到MouseDragElementBehaviour继承了位于
System.Windows.Interactivity命名空间下的抽象类
Behavior<T>。关于对behaviors属性的探索先到这里,若是你有兴趣的能够本身深刻理解。接下来,咱们经过一个简单的示例来建立本身的Behavior。
建立自定义Behavior
这里的工做继续在Blend中进行,打开你刚才的项目,鼠标右击项目,而后依次选择:添加新项-->选择行为--->命名行为的名称--->肯定
这里咱们命名为MyBehavior,因而咱们在目录结构中就能看到新增长了一个类文件:
打开这个文件,咱们能够看到咱们自定义的类继承了
Behavior<DependencyObject>
这个类包括一个构造函数,和两个重载函数:
看注释,咱们就知道,咱们须要在OnAttached()函数加入些东西,这样能够将效果附加到对象上去。这里,咱们想实现一个效果,当鼠标移动到对象上面的时候,对象放大。因而,咱们在
OnAttached函数中增长下图所示的代码。其中的
AssociatedObject
属性提了当前对象的上下文,以使得咱们的Behavior添加到目标对象上去。后面,咱们增长了鼠标移入和移出事件,当鼠标移入时,咱们改变对象的大小,鼠标移出的时候,咱们恢复大小。这样一个简单自定义Behavior就作好了。
当作好这写以后,你生成下当前的项目,而后打开资产面板下的行为项,即可以看到咱们自定义的Behavior了:
而后,咱们拖拽它到咱们刚才那个圆上面,运行项目,就能够看到效果了,当咱们的鼠标移到圆上的时候,变大,移出的时候恢复。这样你在之后的开发中,若是想放大其它的界面元素,例如图片什么的,也只是简单的拖拽工做,固然,实际开发中咱们不会这么简单,能够建立更复杂的行为。这里只是简单的示例而已,但愿对你们有帮助:)
相关文章
1.
开发自定义JSF组件(5) 在JSP中用JSF组件
2.
在iOS开发中使用自定义字体
3.
android-在开发中使用自定义属性名
4.
EventBus在自定义View中的使用
5.
【ios开发】使用自定义的TableViewCell
6.
ios开发中自定义UIAlertView;
7.
[iOS开发]-自定义cell
8.
在JSP中使用自定义标签
9.
在Hive中使用自定义UDF
10.
在Flutter中使用自定义Icon
更多相关文章...
•
自定义TypeHandler
-
MyBatis教程
•
Redis在Java Web中的应用
-
Redis教程
•
RxJava操作符(十)自定义操作符
•
PHP开发工具
相关标签/搜索
behaviors
自定义
自定义 View
自定义toast
自定义View
用户定义
定义
善用
自定义控件
自定义相册
PHP教程
Spring教程
SQLite教程
开发工具
应用
注册中心
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
在windows下的虚拟机中,安装华为电脑的deepin操作系统
2.
强烈推荐款下载不限速解析神器
3.
【区块链技术】孙宇晨:区块链技术带来金融服务的信任变革
4.
搜索引起的链接分析-计算网页的重要性
5.
TiDB x 微众银行 | 耗时降低 58%,分布式架构助力实现普惠金融
6.
《数字孪生体技术白皮书》重磅发布(附完整版下载)
7.
双十一“避坑”指南:区块链电子合同为电商交易保驾护航!
8.
区块链产业,怎样“链”住未来?
9.
OpenglRipper使用教程
10.
springcloud请求一次好用一次不好用zuul Name or service not known
本站公众号
欢迎关注本站公众号,获取更多信息
相关文章
1.
开发自定义JSF组件(5) 在JSP中用JSF组件
2.
在iOS开发中使用自定义字体
3.
android-在开发中使用自定义属性名
4.
EventBus在自定义View中的使用
5.
【ios开发】使用自定义的TableViewCell
6.
ios开发中自定义UIAlertView;
7.
[iOS开发]-自定义cell
8.
在JSP中使用自定义标签
9.
在Hive中使用自定义UDF
10.
在Flutter中使用自定义Icon
>>更多相关文章<<