91精品国产手机在线-白筒袜嫩萝双腿之间乳白液体-青青操手机在线视频观看-日本中文字幕人妻日韩-日韩精品在线观看视频网站-天堂资源中文最新版在线一区-欧美专区一区二区三区-国产综合亚洲欧美在线-国产精品久久久久久福利69堂

詳解wpf和winform的優(yōu)缺點(diǎn) wpf和winform的區(qū)別原理

介紹
WPF的縮寫(xiě)指微軟的Windows Presentation Foundation,而WinForms是Windows Forms Applications的簡(jiǎn)單組合 。這兩個(gè)都是微軟的Windows應(yīng)用程序圖形用戶(hù)界面,開(kāi)發(fā)人員可以使用它們來(lái)開(kāi)發(fā)Windows桌面應(yīng)用程序 。本文重點(diǎn)介紹兩種開(kāi)發(fā)Windows桌面應(yīng)用程序的方法之間的主要區(qū)別,這些方法可以在現(xiàn)代系統(tǒng)開(kāi)發(fā)中發(fā)揮更好的作用 。
Windows Forms
WinForms于2002年2月作為.Net Framework的一部分引入 。在很大程度上,WinForms允許開(kāi)發(fā)人員在Windows窗體上拖放控件,并允許開(kāi)發(fā)人員使用可以具有C#,VB.NET或任何其他.NET語(yǔ)言的代碼隱藏文件來(lái)操縱這些控件 。每個(gè)WinForms控件都是一個(gè)類(lèi)的實(shí)例,因?yàn)閃inForms作為具有一組C++類(lèi)的包裝器存在 。Microsoft的Visual Studio使WinForms的開(kāi)發(fā)更容易,因?yàn)殚_(kāi)發(fā)人員可以輕松地從工具箱中拖放控件 。

詳解wpf和winform的優(yōu)缺點(diǎn) wpf和winform的區(qū)別原理

文章插圖
WinForms工具箱中的控件
在WinForms桌面應(yīng)用程序中,開(kāi)發(fā)人員只能訪問(wèn)他們可以在其中操縱控件事件的代碼隱藏文件 。WinForms桌面應(yīng)用程序在控件的功能和應(yīng)用程序行為方面有其局限性,這將在下一部分中揭示 。
WPF桌面應(yīng)用程序
與WinForms不同,WPF的體系結(jié)構(gòu)包含三個(gè)主要組件:a presentation framework, presentation core, and mallcore 。WPF并不完全依賴(lài)于標(biāo)準(zhǔn)Windows控件,因此是一種獨(dú)立方式 。2007年,Microsoft引入了Windows Presentation Foundation(WPF),以交替WinForms來(lái)進(jìn)行.Net Framework桌面應(yīng)用程序開(kāi)發(fā) 。這一交替帶來(lái)了桌面應(yīng)用程序開(kāi)發(fā)中的許多變化 。首先,WPF將設(shè)計(jì)人員和程序員分開(kāi),可以使用Visual Studio或Blend分別設(shè)計(jì)UI,而開(kāi)發(fā)人員可以使用代碼隱藏文件來(lái)操縱控件事件 。
WPF使用XAML創(chuàng)建控件,其文件結(jié)構(gòu)更像ASP.NET,您可以自由使用設(shè)計(jì)器或編寫(xiě)XAML代碼來(lái)創(chuàng)建控件 。使用Canvas Panel的設(shè)計(jì)師仍然可以像在WinForms中一樣在Windows頁(yè)面上拖放控件 。WPF帶來(lái)的主要區(qū)別是XAML文件和對(duì)XAML文件附帶的可見(jiàn)設(shè)計(jì)器的訪問(wèn) 。

詳解wpf和winform的優(yōu)缺點(diǎn) wpf和winform的區(qū)別原理

文章插圖
WPF可視化設(shè)計(jì)和XAML文件編輯
上圖顯示了WPF應(yīng)用程序的布局,其中在Designer旁邊顯示了XAML文件 。
WPF項(xiàng)目的文件結(jié)構(gòu)如下:

詳解wpf和winform的優(yōu)缺點(diǎn) wpf和winform的區(qū)別原理

文章插圖
WPF項(xiàng)目的文件結(jié)構(gòu)
  • 每個(gè)窗口或頁(yè)面都有一個(gè)用于添加控件的.xaml文件以及一個(gè).cs,.vb等文件,后者是代碼隱藏文件,更像是ASP.NET方式 。
  • 與WinForms不同,WPF生成一個(gè)初始MainWindow來(lái)啟動(dòng)應(yīng)用程序,并且要更改啟動(dòng)窗口,可以在App.xaml文件中執(zhí)行此操作 。

詳解wpf和winform的優(yōu)缺點(diǎn) wpf和winform的區(qū)別原理

文章插圖
WPF主窗體啟動(dòng)配置
  • 該文件充當(dāng)應(yīng)用程序的條目 。
WPF與WinForms的其他顯著區(qū)別是控件 。要添加控件,您只需要編寫(xiě)簡(jiǎn)單的XAML代碼 。例如,要在WPF窗口中添加文本框,你可以寫(xiě)如下代碼實(shí)現(xiàn):
<Windowx:Class="WpfApp1.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:WpfApp1"mc:Ignorable="d"Title="MainWindow"Height="450"Width="800"><StackPanel><TextBox></TextBox></StackPanel></Window> 請(qǐng)注意語(yǔ)法中的標(biāo)記,該標(biāo)記建議使用名稱(chēng)“擴(kuò)展應(yīng)用程序標(biāo)記語(yǔ)言(XAML)” 。XAML代碼放置在Window標(biāo)記中 。控件標(biāo)簽可能具有描述控件寬度,高度等的屬性,具體取決于控件 。
WPF還帶來(lái)了與WinForms的另一個(gè)顯著區(qū)別,那就是可以添加帶有圖像的Button的功能 。在WinForms中,向按鈕添加圖像意味著必須自己繪制圖像或包含一些第三方控件,但是WPF按鈕控件很簡(jiǎn)單,您可以向其中添加任何內(nèi)容 。
<Windowx:Class="WpfApp1.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:WpfApp1"mc:Ignorable="d"Title="MainWindow"Height="500"Width="800"><ButtonPadding="5"><StackPanelOrientation="Horizontal"><ImageSource="/Image.jpg"Height="25"Width="50"/><TextBlockMargin="5,0">I'm a Button</TextBlock></StackPanel></Button></Window> 輸出如下所示:

詳解wpf和winform的優(yōu)缺點(diǎn) wpf和winform的區(qū)別原理

文章插圖
WPF運(yùn)行演示
WPF還提供了完全受支持的數(shù)據(jù)綁定功能,如下面的示例所示:
<Windowx:Class="WpfApp1.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:WpfApp1"mc:Ignorable="d"Title="MainWindow"Height="500"Width="800"><StackPanelMargin="10"><WrapPanelMargin="0,10"><LabelContent="Your Text Here:"FontWeight="Bold"/><TextBoxName="txtBind"Height="20"Width="250"RenderTransformOrigin="-2.75,0.587"Margin="59,0,336,0"/></WrapPanel><WrapPanelMargin="0,10"><TextBlockText="Bound-Text: "FontWeight="Bold"/><TextBlockText="{Binding Path=Text, ElementName=txtBind}"/></WrapPanel></StackPanel></Window> 輸出

詳解wpf和winform的優(yōu)缺點(diǎn) wpf和winform的區(qū)別原理

文章插圖
WPF數(shù)據(jù)綁定演示
上例中的{Binding}屬性用于將<TextBlock>中的文本綁定到txtBindTextBox中的文本 。這只是說(shuō)明使用{Binding}屬性在WPF中綁定數(shù)據(jù)有多么簡(jiǎn)單 。
結(jié)論
【詳解wpf和winform的優(yōu)缺點(diǎn) wpf和winform的區(qū)別原理】 本文通過(guò)兩種創(chuàng)建桌面應(yīng)用程序的.NET方式之間的體系結(jié)構(gòu),語(yǔ)法,文件結(jié)構(gòu)以及應(yīng)用程序行為差異,展示了WinForms和WPF之間的主要差異 。盡管WinForms設(shè)計(jì)看似友好和直接,但是XAML帶來(lái)了開(kāi)發(fā)人員在現(xiàn)代桌面應(yīng)用程序中可能需要的一些有用功能 。

    推薦閱讀