• <ul id="mayc0"></ul>
    <ul id="mayc0"><center id="mayc0"></center></ul>
    <strike id="mayc0"><input id="mayc0"></input></strike>
    <ul id="mayc0"></ul>
  • 始創于2000年 股票代碼:831685
    咨詢熱線:0371-60135900 注冊有禮 登錄
    • 掛牌上市企業
    • 60秒人工響應
    • 99.99%連通率
    • 7*24h人工
    • 故障100倍補償
    您的位置: 網站首頁 > 幫助中心>文章內容

    Silverlight 4 初學者的10大經典問答

    發布時間:  2012/9/23 16:10:45

    我正在自學Silverlight / WPF,我打算用它們來實現我在StannardLabs的下一個大項目的一部分:一系列支持WinMo7 / Android / iOS phones的休閑小游戲。學習每個平臺是如何工作的,有什么區別,和在每個平臺上的應用程序商店的有什么區別成了家常便飯。

    在學習Silverlight 4的過程中,Silverlight的最新版本幾乎沒有指南或圖書,我建立了一個列表,這個列表包括十個最經典的問題的解答,當我剛開始學習Silverlight的時候,我總是希望能更容易地找到這些問題的答案。也許是因為我使用了錯誤的詞匯來搜索,或者,也許有一些事情專業的Silverlight / WPF開發人員認為很明顯,并不需要包括在他們的圖書和博客條目里。所以我不能很快地找出這些問題的答案。為了方便大家,我首先對這些問題進行研究。

    這是我的列表:

    1,在一個應用程序中,我怎樣導航到不同的Silverlight內容?

    答:這時候,請考慮一下,Silverlight是一種基于Web的技術,所以你真正問的問題是“在一個Silverlight應用程序中,我怎樣建立獨立的頁面?”很幸運,這意味著你可以參考:Silverlight的使用:Navigation框架和Silverlight頁面(http://msdn.microsoft.com/en-us/library/cc838245%28VS.95%29.aspx)。

    我找到的最容易的解決方案是使用這些工具建立一個母版頁(Main.xaml或類似的其他文件),在它的中間,要放置一個Silverlight的Frame元素,然后在這個frame里,你要替換你的可交換的頁面。在Silverlight中Frame和Navigation如何工作(http://www.flickr.com/photos/50581866@N06/4863500755/

    2,在一個Silverlight應用程序中,我怎樣建立一個超鏈接,來鏈接到一個Web頁面?

    答:也是使用Silverlight的Navigation框架,在我的答案里,我主要回答這個個問題:“我怎樣在Silverlight中建立超鏈接,來鏈接到外部的內容(http://msdn.microsoft.com/en-us/library/cc838245%28VS.95%29.aspx#external_navigation),并在一個Web瀏覽器中打開它。”這是MSDN中的代碼樣例,它說明了你要怎么做:
     http://www.microsoft.com"
         Content="Go to Microsoft" TargetName="_new" />

    3,在一個Silverlight應用程序中,我怎樣打開一個模式對話框窗口?

    答:首先,你要知道Silverlight并不是Windows Forms或WPF,它們都為那些過去使用Win32 API的程序員實現了模式對話框的行為。Silverlight是一個跨平臺的技術,Silverlight應用程序要在多個環境下運行,所以你過去使用的一些Win32 API下的行為,它的.NET后裔(Silverlight)將無法使用。所以你過去在WPF下使用的模式對話框工具,在Silverlight下無法使用。話雖這樣說,在Silverlight中,要實現一個和模式對話框類似的用戶界面元素是很容易的。這是兩個參考資源,說明了如何實現這樣的功能:

    Silverlight中的模式窗口(http://www.codeproject.com/KB/silverlight/slmodal.aspx
    Silverlight中的可拖動窗口或DataGrid(http://forums.silverlight.net/forums/p/12467/41324.aspx

    4,在一個TextBlock元素中,我怎樣把一小段內嵌文本設置成不同的字體樣式?

    答:從本質上來說,你問的是HTML中的標簽在XAML / WPF中的等價物,以便于你可以在一個TextBlock元素里選擇性的應用各種樣式。幸運的是,這個等價物的確存在——它被稱為Run元素,你可以在TextBlock元素的文本內容里的任何地方使用它。這是一些在Silverlight中使用Run元素的例子(http://stackoverflow.com/questions/2435880/is-it-possible-to-seletively-color-a-wrapping-textblock-in-silverlight-wpf),這是其中一個例子:


            
                 Republican
            
            
                 Democrat
            
     

    5,對于Silverlight來說,實現session-specific存儲的最好方法是什么?

    答:因為我們使用HTTP——一個無狀態的協議,所以這個問題并不像看上去那么棘手——如果你和我一樣是一個ASP.NET的開發人員,那么你應該比那些編寫桌面應用程序的程序員更了解session的概念和不同的狀態

    這是個好消息:Silverlight能像桌面應用程序那樣處理狀態!在一些“輕量級”的場景下,你可以在你的application類的幾個公共屬性上存儲你的session。在一些“中量級”的場景下,你可以創建一個靜態的session類。在一些“重量級”的場景下,你可以使用獨立存儲的方式。如果你想了解更多的信息,可以查看Silverlight的官方論壇中的這個帖子(http://forums.silverlight.net/forums/p/65328/161221.aspx)。

    6,在Silverlight應用程序中,有什么令人信服的理由一定要使用RIA-service來代替普通的WCF service嗎?

    答:如果你過去讀過《Microsoft .NET: Architecting Applications for the Enterprise》(即使你不是一個企業級應用程序的開發人員(我也不是),你也應該讀一下關于設計工具和各種模式的內容),那么你應該知道每個設計問題(比如這個問題)的答案總是“要根據具體情況而定”的。Shawn Wildermuth的這篇文章比我編排的要好得多:主導你選擇一個數據服務的實現(而不是另一個)的一些因素(http://wildermuth.com/2009/09/29/Choosing_a_Data_Access_Layer_for_Silverlight_3),但是為了回答這個問題,我會把它們總結一下:

    如果你的目標是增強一個Silverlight應用程序,讓它運行的更快,那么你應該使用RIA services,因為和其他替代的解決方案相比,你不需要寫很多的代碼,也不需要擔心WCF跨域的策略文件,變更跟蹤,等等。

    7,反之,在Silverlight應用程序中,你為什么選擇WCF service而不是RIA-service呢?

    答:我決定選擇普通的WCF service而不是RIA-service,因為,關于這個問題我已經讀過這篇文章了(http://stackoverflow.com/questions/879725/what-is-net-ria-services),在你需要支持Silverlight以外的客戶端(對我而言,就是iOS和Android客戶端)的情況下,WCF是一個更好的選擇。另外,如果你已經有一個現成的WCF service,你應該使用這個服務,而不是用RIA service來重寫所有的東西。

    8,RIA-services能輕松地在非Silverlight應用程序中重用嗎?

    答:答案很明顯是“不能”,但是我一直是一個Silverlight的新手,所以可能我是錯的。如果你需要支持其他的客戶端,尤其是非.NET framework上的一些客戶端,我建議你使用WCF服務。

    9,我怎樣在運行時動態地把XAML元素添加到我的應用程序中?

    答:有數百種不同的方法可以在運行時把新的XAML元素添加到你的Silverlight應用程序中。我個人最喜歡的是這個例子,它說明了你怎樣使用LINQ來在Silverlight應用程序中建立一個附加的data-driven元素(http://www.silverlight.net/learn/videos/all/use-linq-to-dynamically-create-xaml-elements/)。關于如何用編程的方式添加新的XAML元素,如果你正在找一個的簡單的指南,我可以提供給你一個:“Silverlight控件的動態處理”。(http://dotnetslackers.com/articles/silverlight/Dynamic-Manipulation-of-Silverlight-controls.aspx),它總結的很好。

    10,在Silverlight應用程序中,實現表單驗證的最好方法是什么?

    答:哪里有數據,哪里就一定需要驗證。Silverlight自帶了驗證框架,和ASP.NET自帶的驗證框架很相似。關于如何入門,這是我找到的一個最好的例子:從入門到精通:Silverlight 3 表單驗證(http://www.silverlightshow.net/items/Creating-Rich-Data-Forms-in-Silverlight-3-Validation.aspx)。

    別忘了實踐一下這些方法,我希望在社區中這些問題可以得到更好的解答,或者,如果能提出一些其他的更好的問題,那就更好了。


    本文出自:億恩科技【www.vbseamall.com】

    服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線