隨著最近TWaver .NET的正式發(fā)布,有不少使用過TWaver的Java,Web或Flex的老客戶也可以嘗試在項(xiàng)目中使用TWaver .NET,雖然TWaver .NET既有TWaver.Wpf.dll又有TWaver.Silverlight.dll兩個(gè)開發(fā)包,同時(shí)支持WPF和Silverlight兩種方式,用戶可以根據(jù)自己需要任意挑選,不過根據(jù)我們最近走訪全國(guó)各地目前使用TWaver .NET的僅二十家客戶統(tǒng)計(jì),采用Silverlight的解決方案比例還是居多,雖然WPF功能更加強(qiáng)大,但畢竟Silverlight通過很輕量的6m多插件就可以跑在windows,mac甚至是 symbian和windows phone 7 的mobile領(lǐng)域,發(fā)布如此輕量,更新如此輕松,部署如此廣泛,何樂而不為呢。
扯遠(yuǎn)了,回到今天主題,不少用過TWaver其他版本的老客戶常抱怨,TWaver其他版本總是那么如此讓人省心,讓我們體驗(yàn)到開發(fā)GUI真的也能做到Don’t Repeat Yourself (DRY) ,為什么TWaver .NET上注冊(cè)圖片需要我提供width和height信息TWaver.Utils.RegisterImageByImageSource(string name, ImageSource imageSource, double width, double height)呢,這問題要怪應(yīng)該怪微軟,為什么Silverlight上非得將Image綁定上source并且真是display出來后才能真的得到width和height信息,當(dāng)組件還沒呈現(xiàn)時(shí)你去獲取image的寬高只能得到0。
在此我替微軟向去年當(dāng)TWaver .NET還在beta中就已經(jīng)開始在項(xiàng)目中預(yù)言和使用客戶道歉,我們沒有徹底做到DRY,不過始終堅(jiān)持最大程序減少用戶工作量原則的TWaver開發(fā)團(tuán)隊(duì),在正式TWaver .NET 1.0發(fā)布時(shí)提供了讓人更舒心的RegisterPNGImage(string name, Uri uri)函數(shù),是的,你不用在告訴TWaver寬高了,TWaver會(huì)自動(dòng)的去獲取,至于如何獲取很多同學(xué)很感興趣,以下實(shí)現(xiàn)代碼原理很簡(jiǎn)單我就不解釋了,總之條條道路通羅馬,Silverlight不提供的我們也能走出自己的路

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42
