可視化程序設計基礎(一)——XAML控件

做爲一個剛剛接觸C#和XAML的新手,首先就是要搞清楚這兩者之間的關係。XAML的中文名稱爲可擴展應用程序標記語言,而C#則是運行於.NET Framework之上的高級程序設計語言,能夠理解爲使用XAML製做UWP的用戶使用界面,而使用C#來完成內部的邏輯實現。程序員

簡單類比QT應該就是.ui文件和.cpp文件區別。可視化程序設計我只接觸過QT,對於網站設計並不瞭解,因此對於XAML這種相似於HTML的標記語言不熟,還須要加緊學習。編程

在看完大部分XAML控件後,和我以前接觸的QT進行對比,我發現大部分的特性都很相似,好比說在設計時界面與內部實現分開,所見即所得等。但對於XAML我發現了不少有趣的地方。windows


 

首先就是最令我感到奇怪的一點,就是我沒有找到UWP在電腦端對鼠標圖標的改變,例如在QT中,咱們能夠經過設置這樣一個屬性工具

來使得鼠標在移向該按鈕後變爲手指標識,但在UWP中我沒有看到按鈕有這樣的屬性,在我使用的網易雲音樂中鼠標也沒有變化,一直是處於箭頭狀態,因此不少時候都不清楚一些按鈕可否點擊。我猜想是由於其跨平臺的特性,在移動端以及穿戴式設備上不須要這方面的功能。但我以爲對於已經養成習慣的計算機用戶來講,是有些不習慣的。學習


其次就是MediaElement & MediaPlayerElement這兩個控件,看介紹是說一箇舊一個新,但MediaPlayerElement有什麼新的特性我並無找到,也並不清楚是從頭實現了一個新類仍是隻是將原來的MediaElement改了名字,不過相信微軟這麼作必定是有一些道理的。網站

 

但這個控件自己功能是很是強大的,播放器的基本操做都包含了進去,在QT中若是實現一個差很少功能的控件須要的代碼量會很大,而在UWP中僅僅須要一行代碼就能夠新建一個播放器。這一點是其餘可視化編程平臺作不到的,但這也引發了一些問題,好比說在QT中我能夠定製出一個和其餘全部人都不一樣的個性播放器,而UWP中不知道是否有方法將MediaPlayerElement進行修改,在接下來的學習中我會仔細考慮這個事情。ui

 


 

對於ParallaxView,我第一感受就是炫酷,至關於直接將圖片設置爲按鈕的背景,同時在用戶下滑時還會自動顯示圖片剩餘部分,整個界面瞬間變得高大上了起來,若是有好看的界面相信不少人會摒棄原來單調的背景。spa

 


而後是pivot這個東西,這個東西很相似QT中存放控件的QStackedLayout,能夠存放不少其餘控件,根據用戶的需求顯示不一樣的界面。原來我認爲這個是必須顯示title的設計

 

然而在親自實現後才發現若是不設置title和header時,默認是和QStackedLayout同樣沒有任何顯示的。3d


 

最後是XAML的一些全新的控件:

RatingControl:

這個控件感受就是官方欽定了一種給軟件或產品打分的方式,爲程序員節省了本身編寫打分程序的時間,而且比使用數字框更加直觀。相信在程序員本身定義打分的圖形後,好比說把新型換成笑臉等等會使打分功能更加個性化。

RepeatButton:

看起來和普通按鈕相似,但點擊鼠標後只要不鬆開就一直會觸發某種事件,和QT中重寫了MouseRelease的Button很像。不過有一點不一樣的是當鼠標按住並拖動到按鈕外時,計數就會中止,這意味着這個按鈕不只監控鼠標按下鬆開事件,而且還監控了鼠標的位置。

InkCanvas:

一個功能十分簡單,代碼也十分簡單的內置畫圖工具,對於一些須要手寫文字或簡單畫圖的場合十分適用。但由於功能太簡單,暫時也不清楚拓展性如何,因此對於windows自帶的畫圖工具來講仍是有些差距。


以上是我比較感興趣的控件,感受UWP總體上很是適合在PC端編寫windows應用,而且據說UWP的程序能夠直接在其餘平臺上如windows phone等直接運行,沒必要過多考慮兼容性的問題,相信這也是C#語言崛起的一大緣由吧。

相關文章
相關標籤/搜索