综合久久久久亚洲综合|久久久久久久久免费一级黄色片|丰满中年熟妇露脸视频|精品无码一区二区三区性色|国产精品美女久久久久久不卡

29
WINDOWS窗體應(yīng)用程序與WPF應(yīng)用程序的區(qū)別?

WINDOWS窗體應(yīng)用程序與WPF應(yīng)用程序的區(qū)別?

用WPF更容易做的漂亮

感覺有以下幾個(gè)大區(qū)別:

WPF的線程模型和winform的線程模型不同

WPF到處用到數(shù)據(jù)綁定,winform在列表中才用的多

WPF支持3D,winform本身沒有,需要引入托管的DX

WPF有現(xiàn)成的動(dòng)畫機(jī)制,winform沒有

WPF的界面可以用XAML寫,后臺(tái)邏輯用C#,winform全部C#。也就是WPF真正做到界面與邏輯分離。

WPF開發(fā)于WinForm之后,從技術(shù)發(fā)展的角度,WPF比WinForm先進(jìn)是不容置疑的。我覺得WPF相比于WinForm有下面的一些較好的特性:

解決Window Handle問題 

在Windows GDI或WinForm開發(fā)中復(fù)雜的GUI應(yīng)用程序,會(huì)使用的大量的控件,如Grid等。而每個(gè)控件或Grid cell都是一個(gè)小窗口,會(huì)使用一個(gè)Window handle,盡管控件廠商提供了很多優(yōu)化辦法,但還是會(huì)碰到Out of Memory或"Error Create Window handle",而導(dǎo)致程序退出。

WPF徹底改變了控件顯示的模式,控件不在使用窗口,也就不會(huì)占用Window handle。理論上,如果一個(gè)WPF只有一個(gè)主窗口的話,WPF只會(huì)使用一個(gè)Window handle(如果忽略用于Dispatcher的隱藏窗口的話)。所以WPF GUI程序不會(huì)出現(xiàn)Window handle不夠用的情況。

多線程的處理

Dependency Property

在WinForm開發(fā)中,經(jīng)常碰到的問題就是一個(gè)控件的值變了,其他控件也會(huì)跟著改變。解決辦法,要不是通過寫代碼,要不是通過數(shù)據(jù)綁定,前者是界面和代碼沒法分開,后者還不夠靈活。而WPF在這方面通過XAML可以簡單的把相關(guān)的屬性聯(lián)系起來,通過Extension可以實(shí)現(xiàn)復(fù)雜的綁定關(guān)系。

總的來說,我覺得WPF應(yīng)該是GUI發(fā)展的一個(gè)延續(xù),原來GUI中復(fù)雜的東西,現(xiàn)在通過簡單的文本就可以實(shí)現(xiàn)。


這條幫助是否解決了您的問題? 已解決 未解決

提交成功!非常感謝您的反饋,我們會(huì)繼續(xù)努力做到更好! 很抱歉未能解決您的疑問。我們已收到您的反饋意見,同時(shí)會(huì)及時(shí)作出反饋處理!