用Xaml做網(wǎng)頁(yè)框架_.Net教程
推薦:校內(nèi)網(wǎng)API的.net版本XiaoNei.Net 1.0(非官方)校內(nèi)API開(kāi)放也有一段時(shí)間了,也沒(méi)有太關(guān)注,正好新版本的SNS開(kāi)發(fā)到了API這一塊,正好借鑒一下XiaoNei,F(xiàn)B,MySpace的API。 且聞校內(nèi)API比較有前途,最近的API編程大賽也比較火,而且人氣也較
下面就開(kāi)始編寫(xiě)XAML,首先來(lái)定義一下頁(yè)面的屬性:
| 以下為引用的內(nèi)容: <Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" WindowTitle="MailMail" FontFamily="微軟雅黑" Background="#FF424242" SnapsToDevicePixels="True"></Page> |
WindowTitle就是頁(yè)面標(biāo)題。
SnapsToDevicePixels屬性很重要,它會(huì)使我們的圖像自動(dòng)進(jìn)行像素對(duì)齊,從而去除模糊的邊緣,這可以使我們的網(wǎng)頁(yè)看起來(lái)更像傳統(tǒng)網(wǎng)頁(yè)。
接下來(lái)這一點(diǎn)很有趣,我們要在頁(yè)面中放置ScrollViewer,否則我們的網(wǎng)頁(yè)超出屏幕的時(shí)候不會(huì)顯示滾動(dòng)條,連這個(gè)都要我們自助使用了:
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"></ScrollViewer>
把橫向和縱向滾動(dòng)條的顯示屬性都設(shè)為Auto是個(gè)比較好的方案,這樣在不需要的時(shí)候就會(huì)自動(dòng)隱藏了。
ScrollViewer中要放置一個(gè)Grid用于總體布局:
| 以下為引用的內(nèi)容: <Grid MinHeight="900" MinWidth="1000"> <Grid.ColumnDefinitions> <ColumnDefinition Width="8*"/> <ColumnDefinition Width="84*"/> <ColumnDefinition Width="8*"/> </Grid.ColumnDefinitions> </Grid> |
其中定義了三個(gè)列,兩邊8%留作空白,中間84%是頁(yè)面主體。
在Grid里放置DockPanel用于細(xì)化布局:<DockPanel Background="#FFF" Grid.Column="1"></DockPanel>
DockPanel中裝載的就是頁(yè)面的各個(gè)區(qū)塊了:
| 以下為引用的內(nèi)容: <DockPanel x:Name="Head" DockPanel.Dock="Top" Background="#FF4A4A4A" Height="115"></DockPanel> <Border x:Name="HeadLine" Background="#888" BorderThickness="0,1" DockPanel.Dock="Top" Height="15"></Border> <Grid x:Name="Show" Background="#EEE" DockPanel.Dock="Top" Height="135" ClipToBounds="True"></Grid> <Border x:Name="Channel" DockPanel.Dock="Top" Height="50" Background="#FF8E45" BorderThickness="0,1,0,0" BorderBrush="#FFF"></Border> <Border x:Name="Footer" Background="#666" BorderBrush="#888" BorderThickness="0,4,0,0" DockPanel.Dock="Bottom" Height="55"></Border> <DockPanel x:Name="Body" Background="#FFFFFCD1"></DockPanel> |
僅僅通過(guò)DockPanel.Dock屬性就可以將各個(gè)區(qū)塊完美的放置到它所應(yīng)處的位置,實(shí)際應(yīng)用中可以比這復(fù)雜很多,但實(shí)現(xiàn)起來(lái)依然是非常簡(jiǎn)單。
PS:掌握了WPF布局后,再去其他環(huán)境中布局,都會(huì)有捶墻的沖動(dòng)~
現(xiàn)在我們的界面就是下面這樣了:

我把每個(gè)區(qū)塊都命名并對(duì)應(yīng)到此圖上,這只是為了便于理解,并不是必需的。
在Body中加入兩個(gè)區(qū)塊,即邊欄和內(nèi)容:
| 以下為引用的內(nèi)容: <DockPanel x:Name="Side" Background="#1E874900" DockPanel.Dock="Right" Width="245"></DockPanel> <StackPanel x:Name="Content"></StackPanel> |
其實(shí)不用Body,直接把這兩個(gè)元素放在上層使用也沒(méi)有問(wèn)題,我在這里是希望它們有一個(gè)共同的背景才這樣設(shè)計(jì)的。
分享:Asp.net Mvc Framework可以在Controller中使用的Url.Action方法原本的Url.Action方法是利用RouteCollection來(lái)實(shí)現(xiàn)Url的Routing的。 所以這里用一個(gè)擴(kuò)展方法重現(xiàn)一下 以下為引用的內(nèi)容:
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無(wú)刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶(hù)端IP常見(jiàn)代碼存在的偽造IP問(wèn)題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(kù)(連接字符串的配置及獲取)
- asp.net頁(yè)面?zhèn)髦禍y(cè)試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲(chǔ)過(guò)程實(shí)現(xiàn)分頁(yè)示例代碼
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- .Net教程之基于ASP.NET2.0的非HttpModule山寨版MVC框架的實(shí)現(xiàn)
- DataGrid的多行提交
- ASP.NET及JS中的cookie基本用法
- ASP.NET 2.0中動(dòng)態(tài)修改頁(yè)面標(biāo)題
- Asp.net三層結(jié)構(gòu)中的變量引用與傳遞
- 解析.NET中的動(dòng)態(tài)編譯技術(shù)
- 解讀.NET中*延遲*特性的幾個(gè)陷阱
- 對(duì)數(shù)據(jù)訪問(wèn)層第一種實(shí)現(xiàn)(Acc SQL)的重構(gòu)
- 解讀點(diǎn)縮略圖彈出隨圖片大小自動(dòng)調(diào)整的頁(yè)面
- asp.net回發(fā)或回調(diào)參數(shù)無(wú)效解決方法
- 相關(guān)鏈接:
- 教程說(shuō)明:
.Net教程-用Xaml做網(wǎng)頁(yè)框架
。