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.
No provider available from registry 127.0.0.1:2181 for service com.ddbuy.ser 解決方法
2.
Qt5.7以上調用虛擬鍵盤(支持中文),以及源碼修改(可拖動,水平縮放)
3.
軟件測試面試- 購物車功能測試用例設計
4.
ElasticSearch(概念篇):你知道的, 爲了搜索…
5.
redux理解
6.
gitee創建第一個項目
7.
支持向量機之硬間隔(一步步推導,通俗易懂)
8.
Mysql 異步複製延遲的原因及解決方案
9.
如何在運行SEPM配置嚮導時將不可認的複雜數據庫密碼改爲簡單密碼
10.
windows系統下tftp服務器使用
本站公眾號
歡迎關注本站公眾號,獲取更多信息
相關文章
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
>>更多相關文章<<