自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺析Silverlight窗體跳轉(zhuǎn)的實(shí)現(xiàn)方案

開發(fā)
這里將介紹Silverlight 3.0窗體跳轉(zhuǎn)的實(shí)現(xiàn),希望本文對(duì)廣大Silverlight初學(xué)者有所幫助。

本文將介紹的是Silverlight 3.0窗體跳轉(zhuǎn)的實(shí)現(xiàn),在基本原理上和ASP.NET類似。微軟在Silverlight上投入了大力氣,還是希望能從Adobe手中搶占一定的份額。

閱讀條件:本篇文章適合Silverlight的初學(xué)者閱讀,如果你不是初者請(qǐng)你放棄閱讀;不文不將對(duì)Silverlight的高級(jí)開發(fā)者提供認(rèn)何幫助;

我們?nèi)绾文馨裇ilverlight利用像熟練呢?就像寫Web應(yīng)用程序一樣呢?

其實(shí)這個(gè)問題也很簡(jiǎn)單,只要在平時(shí)多關(guān)心Silverlight,了解Silverlight就可以了,如果你對(duì)它很陌生,那么它也對(duì)你一樣的陌生,這兩者是成正比的;

今天我就給大家講一下在Silverlight 3.0是關(guān)于Redirect頁面的跳轉(zhuǎn),與ASP.NET頁面的跳轉(zhuǎn)一樣;

案例:現(xiàn)在有一個(gè)登陸窗口,如果用戶登陸成功以后成功頁面,沒有成功就到原始頁面;如果沒有登陸提示用戶去登陸;這樣一個(gè)需求在ASP.NET 很好解決,

但是在Siverlight API 文檔 中目前還沒有提供寫好的方法來解決這個(gè)問題;這個(gè)問題其實(shí)也不算很難,通過看Silverlight API 也可以找到解決方案;接下來

我就為大家提供兩種方案來解決Silverlight窗體跳轉(zhuǎn)這個(gè)問題吧;

Silverlight窗體跳轉(zhuǎn)解決方案一:

運(yùn)行效果如下:

image

我們可以從App.cs文件中來解決;我們可以在App中定義一個(gè)全局的變量;

1.我們先在App中定義一個(gè)Grid控件;代碼如下所示:

Grid rootGrid = new Grid();2.當(dāng)整個(gè)應(yīng)用程序啟動(dòng)運(yùn)行時(shí),讓它***個(gè)頁面Login頁面;在Application Startup事件中來處理解決,先看一下代碼:

  1. private void Application_Startup(object sender, StartupEventArgs e)  
  2.        {  
  3.            this.RootVisual = rootGrid;①  
  4.            this.rootGrid.Children.Add(new Login());②  
  5.        } 

這句代碼是什么意思呢?分析如下:

1.當(dāng)整個(gè)應(yīng)用程序啟動(dòng)時(shí),程序的主界面加載就是Grid;

2.Grid控件加載完成了,那么它的創(chuàng)建也完成,接下我們就可以為它添加一個(gè)子頁面;

3.登陸時(shí)的主頁面問題就完全解決了,但是登陸成功后我們又怎么來轉(zhuǎn)向成功后的頁面呢;我們還是在App.cs里面寫一個(gè)方法來解決,

先看代碼;

  1. /// <summary> 
  2. /// 頁面跳轉(zhuǎn)  
  3.  /// summary> 
  4. /// <param name="usercontrol">param> 
  5. public void RedirectTo(UserControl usercontrol)  
  6. {  
  7.     App app = (App)Application.Current;①  
  8.     app.rootGrid.Children.Clear();②  
  9.     app.rootGrid.Children.Add(usercontrol);③  

這三句代碼是什么意思呢?分析結(jié)果如下

①.它的意思就是得到當(dāng)應(yīng)用程序的對(duì)象

②.剛才我們不是對(duì)Grid里面添加Login頁面進(jìn)去了,現(xiàn)在為了添加成功頁面進(jìn)去,我們必須把Grid控件中的Login清除掉;

③.這上操作是建立在②的基礎(chǔ)之上的,沒有它的Clear就不能添加;所以這一步就是在添加新頁面;

我們?cè)趺磥碚{(diào)用③這個(gè)方法呢?不難看出③這個(gè)方面的參數(shù)類型是UserControl,是一個(gè)控件;在調(diào)用它時(shí)我們傳一個(gè)就是一個(gè)頁面;            App app = (App)Application.Current;
           

  1. app.curUserName = txtUserName.Text.Trim();  
  2.             app.RedirectTo(new MainPage()); 

關(guān)于App文件的介紹我在這里就不介紹了,可以在他里面可以定義全局變得,比如:可以定義一個(gè)變量來判斷是否是登陸用戶,這些都可以來做到的;

每一個(gè)解決方案就介紹到這里;

Silverlight窗體跳轉(zhuǎn)解決方案二:

在方案二中與方案一有很多的相似的地方,我就簡(jiǎn)單的介紹一下;

1.當(dāng)應(yīng)用程序運(yùn)行起來時(shí),向加載成功的頁面,在加載成功頁面的同時(shí)我們?cè)谒腖oaded事件中執(zhí)行一個(gè)模態(tài)窗體(Login);代碼如下:

  1. Login s = new Login();  
  2. s.Show(); 

如果登陸成功就回到主頁面了;2.如果在這里我們不用模態(tài)窗體用普通的一個(gè)頁面,如何解決呢?普通頁面這里也方案一很相似;先得以主頁面中聲明一個(gè)UserControl這個(gè)對(duì)象;UserControl _userControl;3.在主頁面的Loaded事件中寫如下代碼:

  1. Login login;  
  2. _userControl = new Login();  
  3. login = _userControl as Login;  
  4. this.ContentHolder.Children.Add(login); 

在這里與解決方案一基本上是一樣的;只是換了一個(gè)角度去考慮一;補(bǔ)充解決方案:關(guān)于頁面的跳轉(zhuǎn)也有很多的解決方案,關(guān)鍵是如何去發(fā)現(xiàn)問題?還得靠平時(shí)的積累;在有的資料文檔中還提供一種用委托來解決,這一種也是一個(gè)不錯(cuò)的解決方案;在這里我就不詳細(xì)說了;

原文標(biāo)題:(牛人莫入)Silverlight 3.0 關(guān)于窗體的跳轉(zhuǎn)解決方案

鏈接:http://www.cnblogs.com/caodaiming/archive/2009/09/26/1574516.html

【編輯推薦】

  1. Office 2010將使用Silverlight改善用戶體驗(yàn)
  2. 微軟.NET平臺(tái)主管談Silverlight企業(yè)級(jí)開發(fā)
  3. Flash與Silverlight多領(lǐng)域?qū)崪y(cè)對(duì)比
  4. 微軟宣稱Silverlight裝機(jī)量超過三億
  5. 圖解Silverlight 3的7個(gè)新功能
責(zé)任編輯:彭凡 來源: 博客園
相關(guān)推薦

2009-09-28 10:35:45

Silverlight

2009-12-31 16:56:40

Silverlight

2009-09-07 05:31:39

C#窗體關(guān)閉事件

2009-09-07 05:24:22

C#窗體繼承

2010-01-04 14:35:55

Silverlight

2009-09-22 16:14:41

ViewBox組件

2009-11-17 10:47:14

Silverlight

2009-11-26 13:12:16

Silverlight

2009-08-20 10:10:55

C#透明窗體

2009-09-07 04:19:56

C#窗體事件

2009-09-07 06:07:46

C#窗體設(shè)計(jì)

2009-09-07 06:56:46

C#透明窗體

2009-08-14 16:41:22

C#啟動(dòng)Windows

2009-09-07 04:56:52

C#模式窗體

2009-09-07 03:37:51

C#窗體

2009-09-22 18:39:02

Silverlight

2010-01-04 17:35:32

Silverlight

2013-10-16 15:36:53

iOS優(yōu)化

2009-09-02 17:28:26

C#程序設(shè)計(jì)Windows窗體

2009-12-28 16:45:31

WPF窗體
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)