wpf首次项目开发技术总结wpf页面
?? 對于初次面對這么一個曾未接觸的wpf項目,我們的歷程是艱辛的,但我們的收獲是不菲的,就學術型的收獲就已經比我在學校課堂的收獲多很多啊!現在我技術總結在此,以便留作技術總結。
?? 首先,我們在vs2010的軟件環境下開發我們的wpf項目,首先我們了解了一下wpf,它是微軟基于Windows Vista的用戶界面框架,屬于.NET Framework 3.0的一部分。它提供了統一的編程模型、語言和框架,真正做到了分離界面設計人員與開發人員的工作;同時它提供了全新的多媒體交互用戶圖形界面。wpf可以做出很多2D/3D的很炫酷的界面,可以開發桌面應用程序也可以做瀏覽器應用程序。在vs2010中可以利用blend 做到界面設計和代碼開發的很好分離。可以使有任何一種.Net編程語言(C#,VB NET等開發語言)進行開發。XAML主要針對界面的可視化控件描述,成生進會分析成.cs或.vb文件,并最后將編譯為CLR中間運行語言。他對于widows應用程序的開發是一個革命性的改變。對于以后的應用程序的開發至關重要。
?我們建立好我們wpf項目,一開始在我們初步設計方案下搭好基本wpf框架,并實現最簡單的連接,但是接下來我們遇到第一問題:我們一開始在不知情的情況下,都是做的是windows窗體,做窗體的連接時,我們開始采用NavigationService.Navigate(new Uri("lose.xaml", UriKind.Relative));進行頁面跳轉,可以怎么也實現不了,最后網上查詢才明白,以上跳轉是對于page,而對于windows窗體的跳轉,只能用窗體的close/hide事件和show事件:lose c1 =new lose();c1.show();this.close();???其實對于wpf有7種xaml文件,窗體windows(它是wpf最基本的界元素),<Window x:Class="WpfBrowserApplication1.Window1"
??????? xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
??????? xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
??????? Title="Window1" Height="300" Width="300">
??? <Grid>
???????
??? </Grid>
</Window>page頁
<Page x:Class="WpfBrowserApplication1.Page2"
????? xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
????? xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
????? xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
????? xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
????? mc:Ignorable="d"
????? d:DesignHeight="300" d:DesignWidth="300"
?Title="Page2">
??? <Grid>
???????
??? </Grid>
</Page> 他是是頁面型的文件,并不是窗體,一個窗體可以加載多個page頁,及我們所有的page可以共用一個windows窗體。只是我們需要將windows頁面<Windowx:Class="WpfBrowserApplication1.Window1"?</Window>改為<NavigationWindow x:Class="WpfBrowserApplication1.Window1"
</NavigationWindow>;多個page頁就可以繼承windows;
usercontrol用戶控件頁面<UserControl x:Class="WpfBrowserApplication1.UserControl1"
???????????? xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
???????????? xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
???????????? xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
???????????? xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
???????????? mc:Ignorable="d"
???????????? d:DesignHeight="300" d:DesignWidth="300">
??? <Grid>
???????????
??? </Grid>
</UserControl>這是用戶控件頁面,他是為開發人員提供自定義用戶控件的頁面,可以直接添加到要使用的windows窗體中
ResourceDictionary資源字典頁面
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
??????????????????? xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
???
</ResourceDictionary>在 Silverlight 中,并非所有類型和對象都適合?ResourceDictionary?用法。?為了在?ResourceDictionary?中定義某個對象并從其中訪問該對象,該對象必須成為可共享的對象。?可共享是必須的,因為當在運行時構造并使用應用程序的對象樹時,對象不能存在于多個樹中的位置。作為資源而使用,資源字典的對象必須受 Silverlight 資源共享行為或諸如對象引用的間接機制的支持。這些機制都需要額外代碼的支持。?從?UIElement?類型派生的任何對象在本質上都不是可共享的,除非該對象是從控件模板生成的(Silverlight 控件模板化子系統是間接機制的一個突出示例)。一般支持樣式,模板,畫筆,顏色,動畫類型,轉換等。他的使用也很簡單,在使用頁xaml代碼中插入:?<Window.Resources>
??????? <ResourceDictionary>
??????????? <ResourceDictionary.MergedDictionaries>
??????????????? <ResourceDictionary Source="MyDictionary1.xaml"/>
??????????????? <ResourceDictionary Source="MyDictionary2.xaml"/>
??????????????? <ResourceDictionary Source="Mydictionary3.xaml"/>
??????????? </ResourceDictionary.MergedDictionaries>
??????? </ResourceDictionary>
??? </Window.Resources>
??? 我們終于解決了頁面跳轉的問題,由于考慮到我們頁面跳轉位置不會隨機,我們采用的是page頁,只是用一個公共的windows進行加載。
?
?
??
轉載于:https://www.cnblogs.com/nghygaojun/archive/2013/05/10/3071268.html
總結
以上是生活随笔為你收集整理的wpf首次项目开发技术总结wpf页面的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 动态加入JS及加入CSS
- 下一篇: 刚刚开始