作為一個剛剛接觸C#和XAML的新手益涧,首先就是要搞清楚這二者之間的關系暇矫。XAML的中文名稱為可擴展應用程序標記語言,而C#則是運行于.NET Framework之上的高級程序設計語言佩番,可以理解為使用XAML制作UWP的用戶使用界面附帽,而使用C#來完成內部的邏輯實現(xiàn)馆衔。簡單類比QT應該就是.ui文件和.cpp文件區(qū)別瘟判。可視化程序設計我只接觸過QT角溃,對于網站設計并不了解拷获,所以對于XAML這種類似于HTML的標記語言不熟,還需要加緊學習开镣。
在看完大部分XAML控件后刀诬,和我之前接觸的QT進行對比咽扇,我發(fā)現(xiàn)大部分的特性都很類似邪财,比如說在設計時界面與內部實現(xiàn)分開,所見即所得等质欲。但對于XAML我發(fā)現(xiàn)了很多有趣的地方树埠。
首先就是最令我感到奇怪的一點,就是我沒有找到UWP在電腦端對鼠標圖標的改變嘶伟,例如在QT中怎憋,我們可以通過設置這樣一個屬性
來使得鼠標在移向該按鈕后變?yōu)槭种笜俗R,但在UWP中我沒有看到按鈕有這樣的屬性九昧,在我使用的網易云音樂中鼠標也沒有變化绊袋,一直是處于箭頭狀態(tài),所以很多時候都不清楚一些按鈕能否點擊铸鹰。我猜測是因為其跨平臺的特性癌别,在移動端以及穿戴式設備上不需要這方面的功能荡澎。但我覺得對于已經養(yǎng)成習慣的計算機用戶來說热监,是有些不習慣的。
其次就是MediaElement&MediaPlayerElement這兩個控件犁柜,看介紹是說一個舊一個新,但MediaPlayerElement有什么新的特性我并沒有找到圾笨,也并不清楚是從頭實現(xiàn)了一個新類還是只是將原來的MediaElement改了名字教馆,不過相信微軟這么做一定是有一些道理的。
但這個控件本身功能是非常強大的擂达,播放器的基本操作都包含了進去土铺,在QT中如果實現(xiàn)一個差不多功能的控件需要的代碼量會很大,而在UWP中僅僅需要一行代碼就可以新建一個播放器谍婉。這一點是其他可視化編程平臺做不到的舒憾,但這也引起了一些問題,比如說在QT中我可以定制出一個和其他所有人都不同的個性播放器穗熬,而UWP中不知道是否有方法將MediaPlayerElement進行修改镀迂,在接下來的學習中我會仔細考慮這個事情。
對于ParallaxView唤蔗,我第一感覺就是炫酷探遵,相當于直接將圖片設置為按鈕的背景,同時在用戶下滑時還會自動顯示圖片剩余部分妓柜,整個界面瞬間變得高大上了起來箱季,如果有好看的界面相信很多人會摒棄原來單調的背景。
然后是pivot這個東西棍掐,這個東西很類似QT中存放控件的QStackedLayout藏雏,可以存放很多其他控件,根據用戶的需求顯示不同的界面作煌。原來我認為這個是必須顯示title的
然而在親自實現(xiàn)后才發(fā)現(xiàn)如果不設置title和header時掘殴,默認是和QStackedLayout一樣沒有任何顯示的。
最后是XAML的一些全新的控件:
RatingControl:
這個控件感覺就是官方欽定了一種給軟件或產品打分的方式粟誓,為程序員節(jié)省了自己編寫打分程序的時間奏寨,并且比使用數字框更加直觀。相信在程序員自己定義打分的圖形后鹰服,比如說把新型換成笑臉等等會使打分功能更加個性化病瞳。
RepeatButton:
看起來和普通按鈕類似,但點擊鼠標后只要不松開就一直會觸發(fā)某種事件悲酷,和QT中重寫了MouseRelease的Button很像套菜。不過有一點不同的是當鼠標按住并拖動到按鈕外時,計數就會停止设易,這意味著這個按鈕不僅監(jiān)控鼠標按下松開事件逗柴,并且還監(jiān)控了鼠標的位置。
InkCanvas:
一個功能十分簡單亡嫌,代碼也十分簡單的內置畫圖工具嚎于,對于一些需要手寫文字或簡單畫圖的場合十分適用掘而。但因為功能太簡單,暫時也不清楚拓展性如何于购,所以對于windows自帶的畫圖工具來說還是有些差距袍睡。
以上是我比較感興趣的控件,感覺UWP整體上非常適合在PC端編寫windows應用肋僧,并且聽說UWP的程序可以直接在其他平臺上如windows phone等直接運行斑胜,不必過多考慮兼容性的問題,相信這也是C#語言崛起的一大原因吧嫌吠。