日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

wpf首次项目开发技术总结wpf页面

發布時間:2024/4/15 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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窗體中

<Window x:Class="WpfApplicationDemo.UserControlDemo"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:my="clr-namespace:WpfApplicationDemo.Control"Title="UserControlDemo" Height="300" Width="300" Loaded="Window_Loaded"><Grid><TextBlock Height="23" HorizontalAlignment="Left" Margin="10,10,0,0" Name="textBlock1" Text="下面是用戶控件" VerticalAlignment="Top" /><StackPanel Height="175" HorizontalAlignment="Left" Margin="20,57,0,0" Name="stackPanel1" VerticalAlignment="Top" Width="246" /><my:UserControl1 HorizontalAlignment="Left" Margin="38,46,0,0" x:Name="userControl11" VerticalAlignment="Top" Height="183" Width="406" /></Grid> </Window>

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页面的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。