網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
一、簡(jiǎn)介
WPF(Windows Presentation Foundation)是微軟推出的基于Windows 的用戶界面框架,屬于.NET Framework 3.0的一部分。它提供了統(tǒng)一的編程模型、語(yǔ)言和框架,真正做到了分離界面設(shè)計(jì)人員與開(kāi)發(fā)人員的工作;同時(shí)它提供了全新的多媒體交互用戶圖形界面。
學(xué)習(xí)WPF的基礎(chǔ)知識(shí):
(1)WPF是微軟提供的一種用來(lái)開(kāi)發(fā)“桌面應(yīng)用”的技術(shù)(框架),這項(xiàng)技術(shù)本身和C#沒(méi)有關(guān)系,必須會(huì)的是xaml語(yǔ)法。
(2)對(duì)XML、HTML、XHTML、ASP.NET之類的“標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言”,對(duì)于學(xué)習(xí)是有所幫助的。
(3)有WinForm或ASP.NET經(jīng)驗(yàn),主要是對(duì)控件事件的處理要有所了解。
(4)具備面向?qū)ο蟮乃枷耄涸赪PF中,經(jīng)常要靈活運(yùn)用各種繼承關(guān)系、多態(tài)、重載等。
(5)DataBinding要有所了解:Binding是WPF的一大亮點(diǎn)。
二、創(chuàng)建WPF項(xiàng)目
1.創(chuàng)建WPF項(xiàng)目步驟
1.打開(kāi)Visual Studio 2015 ,選擇“菜單—>文件—>新建—>項(xiàng)目”。如下圖:
2.在“新建項(xiàng)目”對(duì)話框中選擇“WPF應(yīng)用程序”,修改名稱為自己項(xiàng)目的名稱,然后點(diǎn)擊“確定”按鈕,便成功創(chuàng)建了一個(gè)“WPF應(yīng)用程序”。新創(chuàng)建的項(xiàng)目所引用的公共類庫(kù)如下。如下圖:(“WPF應(yīng)用程序”會(huì)在“引用”里面自動(dòng)添加下圖中所示的 PresentationCore、PresentationFramework、WindowsBase三大核心程序集)。
3. 項(xiàng)目的生成的文件結(jié)構(gòu)。如下圖:
Properties:資源
引用:引用其他類庫(kù)
App.xmal:程序主體(一個(gè)GUI進(jìn)程需要有一個(gè)窗體,App.xmal文件的作用聲明了程序的進(jìn)程,同時(shí)指定程序的主窗體),點(diǎn)開(kāi)app.xaml.cs,它是app.xaml的后臺(tái)代碼。
MainWindow1.xmal分支:默認(rèn)程序的主窗體。
4.在App.xaml中的“StartupUri”屬性可以指定項(xiàng)目運(yùn)行時(shí)的啟動(dòng)窗體。下圖中“StartupUri="MainWindow.xaml"”,還可以定義我們需要的系統(tǒng)資源以及引入程序集等。如下圖:
xmlns用于在Xaml中聲明名稱空間的Attribute;冒號(hào)的映射名是可選的;引號(hào)的字符串確定了哪個(gè)類庫(kù)以及類庫(kù)哪個(gè)名稱空間。
5. MainWindow.xaml的設(shè)計(jì)窗體中我們可以修改Title。還可以設(shè)置MainWindow的屬性和添加事件。完成了這些設(shè)置以后,我們就可以對(duì)窗體添加內(nèi)容了,如下圖:
x:Class是當(dāng)XAML解析器將包含它的標(biāo)簽的解析成C#類的類名。是來(lái)自xmlns:x的命名空間。第一行xmlns是默認(rèn)命名空間。<Window>和<Grid>都來(lái)自默認(rèn)空間。Title是窗體標(biāo)題,Height是窗體高度,Width是窗體寬度。可以引用CLS的命名空間。
6. 我在這個(gè)窗體中添加了一個(gè) Viewbox, ViewBox組件的作用是拉伸或延展位于其中的組件,使之有更好的布局及視覺(jué)效果。
2.WPF項(xiàng)目小案例
Grid標(biāo)簽中的代碼:
<Grid>
<!--行-->
<Grid.RowDefinitions>
<RowDefinition Height="200" />
<RowDefinition Height="200"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!--列-->
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200" />
<ColumnDefinition Width="200" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<!--布局方式-->
<StackPanel Grid.Row="0">
<TextBlock Width="250" Height="26" Text="您所在的省份:" TextWrapping="Wrap" Background="Azure" FontSize="20"/>
<ListBox x:Name="listStockName" Width="200" Height="90" Background="Azure" FontSize="20">
<ListBoxItem Content="安徽省"/>
<ListBoxItem Content="浙江省 "/>
<ListBoxItem Content="江蘇省"/>
<ListBoxItem Content="湖南省 "/>
<ListBoxItem Content="湖北省 "/>
<ListBoxItem Content="河南省"/>
<ListBoxItem Content="陜西省 "/>
<ListBoxItem Content="福建省"/>
<ListBoxItem Content="江西省"/>
</ListBox>
<TextBlock Width="250" Height="24" Text="你所選中的省份:" Background="Aqua" FontSize="20" />
<!--綁定選擇項(xiàng)值-->
<TextBlock Width="250" Height="30" Text="{Binding ElementName=listStockName, Path=SelectedItem.Content}" Background="Azure" FontSize="26"/>
</StackPanel>
</Grid>
運(yùn)行結(jié)果:
原文鏈接:https://www.cnblogs.com/wml-it/p/14870223.html
相關(guān)推薦
- 2023-07-31 linux下wordPress更改IP地址后無(wú)法訪問(wèn)的解決辦法
- 2022-12-23 Android入門(mén)之SubMenu的實(shí)現(xiàn)詳解_Android
- 2022-01-17 export和export default的區(qū)別
- 2022-04-27 分布式Redis?Cluster集群搭建與Redis基本用法_Redis
- 2022-04-18 uniapp 獲取元素距離頂部的距離,實(shí)現(xiàn)頁(yè)面滾動(dòng)元素消失后懸浮在底部的效果
- 2021-11-29 c++11?chrono全面解析(最高可達(dá)納秒級(jí)別的精度)_C 語(yǔ)言
- 2023-07-28 el-table 鼠標(biāo)懸浮時(shí)背景色改變
- 2022-12-09 python反射機(jī)制內(nèi)置函數(shù)及場(chǎng)景構(gòu)造詳解_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門(mén)
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支