2009-08-20 241 views
0

我一直在學習WPF的一個星期左右現在.. 和我有一個基本的問題:WPF能做什麼和不做什麼?

從業務視圖和發展觀(出你的經驗)..什麼可以和什麼不能被用做WPF(功能)..

請儘量說明..

不需要答案的例子:
「全功能的獨立的應用程序有很多的動畫和閃閃發光的圖像」

第二個問題:
如果我爲我的應用程序構建一個XBAP UI,我可以讓UI在瀏覽器中「不顯示」!

如果烏拉圭回合打算從教程/網站/書籍回答..請不要複製其直接粘貼,儘量把它寫在你自己的話...

+1

你可以用Winforms做什麼,你可以用WPF做,然後做一些。你可以用ASP.Net做的任何事情,你可以用WPF做,然後一些。是的,你可以製作一個像不需要瀏覽器的網站導航的應用程序(位於「任何東西」的標題下,你也可以用winforms來實現)。 – 2009-08-20 08:20:54

+0

thx的評論..但它仍然does not幫助我,我的第二個問題的意思是,如果我爲我的應用程序構建一個XBAP用戶界面,我可以使UI在瀏覽器中「不顯示」!我知道「wpf可以完成winforms所能做的一切」我需要一個更具說明性的答案!喜歡什麼讓它變得更好,什麼讓它變得更糟! – 2009-08-20 08:27:34

回答

3

您可以在WPF應用程序中託管Win32 GDI/USER API(WinForms,ActiveX控件)的所有內容,所以即使您對大多數WPF應用程序造成某些限制,也可以始終在內部託管一些舊控件它。

自3.5 SP1以來,你甚至可以非常無縫地託管動畫DirectX圖形(雖然WPF的3D支持提供了它自己的更簡單的方法來實現最常見的事情)。

至於比較,WPF比WinForms的主要優勢在於它與自己的基於組件的模型密切相關,因此很大一部分控件能夠充當其他控件的容器。想要在菜單項中放置組合框?不知道你爲什麼會,但你可以。更有用的是,你可以在列表框(或樹視圖)中放置一個按鈕。除非您從頭開始實施每個標準控件(這正是WPF所做的),否則這些類型的事情是不可能的。

缺點可能是暫時的:它在某些機器上可能有點不穩定(渲染代碼似乎可以運行以顯示驅動程序不兼容性),但每個服務包都會更好。此外,文本渲染已受到嚴重批評 - 與Windows通常的情況相比,ClearType抗鋸齒的效果會更進一步,所以有些人抱怨它看起來很模糊。

(的原因,這些都可能是暫時性的問題是,微軟的Visual Studio 2010採用WPF。因此,他們現在是「吃自己的狗食」。)

+0

thx很多對於答案..你已經把我知道的東西..以一種更簡單更好的方式..現在我可以更清楚地考慮wpf .. – 2009-08-20 08:51:27

+0

我應該對這個評論放棄免責聲明 - 大部分時間以來我寫了它,其實我已經試着避免在HTML/JS/Canvas以外的其他任何地方創建UI。在商業應用平臺上我無法做到這一點,它是我使用過的最高效的平臺,所產生的應用程序本質上可以通過互聯網訪問,並在各種平臺上工作......如果我必須在某些我無法在瀏覽器中創建UI的情況下工作,我的首選方法是解決該問題(例如,託管瀏覽器)。 – 2013-06-04 10:15:03

1

你可以在理論上做任何事情在WPF什麼你要。將它與WinForms應用程序進行比較。有什麼你不能用它來建造嗎?不是真的。 WPF也是如此。這只是WPF更適合某些東西,如動畫,視頻,圖形等等。因爲它基於xaml,所以它也更適合於針對XML的數據綁定。 另請參閱this related question

至於你的第二個問題,我不確定你的意思。你的意思是如果你可以使用WPF顯示網站?當然,就像WinForms一樣。

+0

@razzie:thx爲你的答案,我編輯的第二個問題,試圖使其更清晰.. 和我回答「二進制」,我已經知道我可以做wpf作爲winforms相同的東西(畢竟他們都仍然.Net)..所以除非我想添加很多的動畫/視頻/圖形到我的用戶界面,winforms可以完成這項工作嗎? – 2009-08-20 08:34:36

+0

是的,當然你可以堅持使用WinForms,特別是如果你不需要WPF的高級媒體功能。但是,如果您希望您的應用程序也*在瀏覽器中運行,那麼轉到WPF。 – Razzie 2009-08-20 08:43:00

+0

大聲笑它是相反的,我想「不」在瀏覽器中運行..換句話說,我想使用webnavgiation查看(下一頁和後頁)沒有「xbap」頁面需要瀏覽器顯示它.. – 2009-08-20 08:47:29

0

哦,在WPF有些事情仍然沒有實現。作爲流行示例的DataGridViews僅在codeplex預覽中。 YOu擁有很多類似ExExander這樣的以不同方式工作的內容,並且您可能會在自動化內容方面遇到很多問題。

2

你幾乎可以在WPF中做任何你需要的GUI應用程序。但這不是真正的好處,恕我直言。

一個WPF的真正好處是發展速度和簡單,一旦你過去的學習曲線(也有一個學習曲線!)

的另一個主要好處,也可能是最大的一個,是它使設計人員能夠在演示文稿上工作,進行大量互動活動,所有這些都使用設計友好的(更友好,無論如何)工具,而不必向編碼人員提交請求。通過改變.xaml,設計師可以使應用程序看起來幾乎完全不同,並添加各種行爲(面板消失,擴展,各種整潔的東西)。無需更改一行代碼。

+0

+1爲插圖和有用的信息:) – 2009-08-20 13:04:11