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

在Eclipse中開始Silverlight編程之旅

原創(chuàng)
開發(fā) 后端
現(xiàn)在通過插件,Eclipse開發(fā)人員將能夠在他們熟悉的IDE中創(chuàng)建Silverlight應(yīng)用程序了。它提供Visual Studio 2008中Silverlight工具的大部分特性,本文將為大家開始Silverlight編程之旅。

51CTO.com獨(dú)家特稿】微軟公司的Silverlight大大提高了程序的互操作性,非常感謝微軟公司和Soyatec,Eclipse開發(fā)人員將能夠在他們熟悉的IDE中創(chuàng)建Silverlight應(yīng)用程序了。

開源FANS和高可配置Eclipse IDE最近獲得了一個(gè)新禮物:Eclipse的Silverlight插件。它提供了Visual Studio2008中Silverlight工具的大部分特性,包括代碼提示和XAML預(yù)覽。這個(gè)插件是由Soyatec基金支持開發(fā),由微軟互操作性團(tuán)隊(duì)管理的。學(xué)習(xí)Eclipse中Silverlight插件的特性***的辦法就是去使用它,因此,本文將使用Eclipse創(chuàng)建一個(gè)簡(jiǎn)單的Silverlight應(yīng)用程序,一個(gè)企業(yè)聯(lián)合組織反饋閱讀程序,它在頂層窗口中列出反饋條目,在列表的下面顯示選中的條目,實(shí)現(xiàn)這個(gè)功能的代碼短得驚人,最終完成的程序樣子如下圖所示:

 

圖1 企業(yè)聯(lián)合組織反饋閱讀程序

安裝Silverlight開發(fā)工具箱

Silverlight模塊需要下面的軟件,按順序安裝它們:

1.Microsoft Windows XP SP2或更高版本,或Windows Vista SP1。

2.Java Development Kit (JDK) 1.5.0-11或更高版本。

3.Eclipse Ganymede 3.4.1,32位版本。

4.Microsoft .NET Framework 3.5。

5.Silverlight 2 Runtime 2.0.31005.0或更高版本。

6.Silverlight 2 SDK

安裝這個(gè)Beta版本時(shí)需要注意幾件事情:

1.還沒有程序調(diào)試器,但這個(gè)已經(jīng)列入開發(fā)計(jì)劃了。

2.Eclipse上的Silverlight插件還不支持64位Windows Vista系統(tǒng),但修復(fù)這個(gè)問題也已經(jīng)列入開發(fā)計(jì)劃了。

3.Ganymede的基礎(chǔ)版本已經(jīng)可以工作得很好,當(dāng)你安裝Silverlight模塊時(shí),會(huì)自動(dòng)解決依賴性問題。

當(dāng)你安裝好Silverlight后,你應(yīng)該更新到2008年10月的DataGrid,它幾乎修復(fù)了近30個(gè)bug,在這篇文章中將使用到DataGrid。

當(dāng)你安裝好所有的先決條件后,就可以安裝Silverlight插件了,啟動(dòng)Eclipse,然后選擇‘幫助’到‘軟件更新’,打開‘軟件更新和加載項(xiàng)’對(duì)話框,選擇‘可用的軟件’標(biāo)簽,點(diǎn)擊‘添加站點(diǎn)’按鈕。

 

圖2 選擇可用的軟件標(biāo)簽再點(diǎn)擊添加站點(diǎn)按鈕

在‘添加站點(diǎn)’對(duì)話框中,輸入http://www.eclipse4sl.org/update/,點(diǎn)擊‘確定’按鈕,注意不要忘了輸入www.,如果忘記輸入了,你會(huì)看到重復(fù)的條目,雖然不影響使用,但看上去很討厭。

 

圖3輸入http://www.eclipse4sl.org/update/,點(diǎn)擊‘確定’按鈕

在‘可用的軟件’標(biāo)簽中將會(huì)顯示一條新的Silverlight項(xiàng)目,選擇它然后點(diǎn)擊‘安裝’按鈕,Eclipse將會(huì)安裝Silverlight及其依賴文件。

 

圖4 選擇Silverlight條目,點(diǎn)擊‘安裝’按鈕

如果想查看究竟都安裝了些什么插件,可以點(diǎn)擊‘幫助|關(guān)于’,看到立方體圖標(biāo)的插件就是Silverlight了。

 

圖5 立方體插件圖標(biāo)就是Silverlight

點(diǎn)擊立方體圖標(biāo)顯示Silverlight模塊信息對(duì)話框。

 

圖6 點(diǎn)擊立方體圖標(biāo)顯示Silverlight模塊信息對(duì)話框

點(diǎn)擊‘插件詳細(xì)信息’按鈕查看所有的組件。

 

圖7 點(diǎn)擊插件詳細(xì)信息按鈕顯示所有組件

#p#

創(chuàng)建項(xiàng)目模板

至此我們已經(jīng)準(zhǔn)備好可以創(chuàng)建Silverlight應(yīng)用程序了,選擇窗口打開透視圖其它,打開透視圖選擇對(duì)話框。

 

圖8 打開透視圖對(duì)話框

注意這里顯示兩條Silverlight,***個(gè)藍(lán)色立方體的條目表示是Eclipse風(fēng)格的透視圖,左側(cè)是項(xiàng)目管理器,右側(cè)是選項(xiàng)??繀^(qū)域,第二個(gè)條目表示是VisualStudio風(fēng)格透視圖,它們剛好相反。

現(xiàn)在Silverlight透視圖設(shè)好了,選擇‘文件’‘新建’,你將會(huì)看到兩個(gè)Silverlight項(xiàng)目可供選擇:SilverlightProject和SilverlightWebProject,選擇SilverlightWebProject,這樣你可以在Web頁面中嵌入Silverlight程序。

 

圖9 SilverlightWeb項(xiàng)目允許你將Silverlight程序嵌入到還有其他元素的Web頁面中

接著你會(huì)看到新建項(xiàng)目對(duì)話框,輸入SyndicationFeedReader作為項(xiàng)目名,這個(gè)項(xiàng)目不依賴于其它任何項(xiàng)目,因此你可以不點(diǎn)擊‘下一步’按鈕,直接點(diǎn)擊‘完成’按鈕。

 

圖10在新建項(xiàng)目對(duì)話框中,輸入SyndicationFeedReader作為項(xiàng)目名稱

在開始動(dòng)手之前,先看看都創(chuàng)建了些什么內(nèi)容,項(xiàng)目管理器中顯示了兩個(gè)項(xiàng)目:SyndicationFeedReader和SyndicationFeedReader.Web。

 

圖11項(xiàng)目管理器中顯示了兩個(gè)項(xiàng)目:SyndicationFeedReader和SyndicationFeedReader.Web

在上面的屏幕截圖中,鼠標(biāo)指針懸停在視圖菜單按鈕上,當(dāng)前版本的插件沒有顯示視圖菜單,但你可以從其它Eclipse透視圖打開和關(guān)閉你的Silverlight項(xiàng)目。

如果這個(gè)時(shí)候編譯并運(yùn)行的話,只會(huì)顯示一個(gè)空白頁面,但它給我們一個(gè)機(jī)會(huì)設(shè)置一些選項(xiàng),選擇‘運(yùn)行’‘運(yùn)行配置’,啟動(dòng)‘運(yùn)行配置’對(duì)話框,在列表中選擇‘SilverlightWebApp’,然后點(diǎn)擊‘新建’按鈕。

 

圖12選項(xiàng)運(yùn)行運(yùn)行配置,啟動(dòng)運(yùn)行配置對(duì)話框

接著你會(huì)看到配置對(duì)話框,在名稱區(qū)域輸入SyndicationFeedReader,在用于測(cè)試的項(xiàng)目處選擇SyndicationFeedReader.Web,開始頁SyndicateFeedReaderTestPage.html也將被選中,點(diǎn)擊‘應(yīng)用’,然后點(diǎn)擊‘運(yùn)行’按鈕。

 

圖13輸入運(yùn)行配置名稱,選擇項(xiàng)目開始頁面

在你的瀏覽器中將會(huì)顯示一個(gè)空白頁面,但你在上面點(diǎn)擊右鍵就會(huì)顯示Silverlight配置上下文菜單,這說明Silverlight已經(jīng)在運(yùn)行,只不過還沒有填充內(nèi)容吧了。
注意:我們將對(duì)SyndicationFeedReaderTestPage.html做一點(diǎn)小小的改動(dòng),但它可能不會(huì)在項(xiàng)目管理器中作為SyndicationFeedReader.Web項(xiàng)目的一部分列出來,Soyatec已經(jīng)修復(fù)了這個(gè)bug,但你在閱讀本文的時(shí)候可能還沒有發(fā)布補(bǔ)丁,如果真是這樣,你可以手動(dòng)添加它,在項(xiàng)目名稱SyndicationFeedReader.Web上點(diǎn)擊右鍵,選擇‘新建’‘添加現(xiàn)有文件’,然后切換到項(xiàng)目目錄,將過濾器改為*.*,然后選擇文件,將會(huì)詢問你是否要覆蓋現(xiàn)有文件,回答‘不’,文件就會(huì)顯示在項(xiàng)目列表中了。

#p#

為程序自定義代碼

現(xiàn)在我們?cè)赑age.xaml文件為用戶添加接口代碼,XAML即可擴(kuò)充應(yīng)用程序標(biāo)記語言,XAML文件實(shí)際上是一個(gè)XML文件,雙擊Page.xaml在編輯器中打開它,下面面板顯示源代碼,上面面板顯示預(yù)覽效果。你會(huì)看到文件中已經(jīng)包含了一些框架代碼,頂層的UserControl元素包含所有的Silverlight內(nèi)容,我們從移除Width和Height參數(shù)開始,這樣

    xmlns="    xmlns:x="    >
   
       
           
           
       

   

Silverlight Grid控制和HTML表類似,但語法稍有不同,我們的Silverlight程序?qū)▋尚?,上面的行容納一個(gè)標(biāo)記和按鈕,下面的行容納反饋項(xiàng)目,及一個(gè)反饋項(xiàng)目列表,被選中的項(xiàng)目將以HTML樣式顯示。

想要添加一個(gè)行的定義,使用如下語法:

    Xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation 
    xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml
    >
   
   

接下來我們要添加一個(gè)水平方向的StackPanel來容納標(biāo)簽文本和按鈕,可以使用右側(cè)的選項(xiàng)面板,點(diǎn)擊‘容器’,然后拖動(dòng)StackPanel項(xiàng)目到代碼窗口,在標(biāo)記后輸入一個(gè)空格,然后按Ctrl+空格鍵,彈出代碼提示窗,向下滾動(dòng)到Orientation,或輸入‘O’加速搜索速度,雙擊選中它,保持默認(rèn)值‘Horizontal’即可。

我們兩個(gè)StackPanel控制器將會(huì)是一個(gè)TextBlock和一個(gè)Button,TextBlock將會(huì)賦予‘Wired’(本文我們用它作為反饋的名字),注意不是所有的反饋都可以工作,這個(gè)域必須通過在服務(wù)器上托管一個(gè)小文件執(zhí)行跨域訪問,如wired.com上的這個(gè)文件。

想要增加一個(gè)文本塊(TextBlock),在選項(xiàng)面板上點(diǎn)擊控制器(Controls),然后拖動(dòng)TextBlock到你的代碼窗口中兩個(gè)StackPanel標(biāo)記之間,然后點(diǎn)擊按鈕,拖動(dòng)按鈕控制器到代碼窗口中TextBlock下,象下面這樣配置控制器,不用告訴它不要使用grid的***行(row 0),因?yàn)槟J(rèn)就是這樣了,使用StackPanel時(shí),你可以使用Ctrl+空格鍵得到語法幫助。


                            VerticalAlignment="Center"
                FontSize="36"
                Padding="10"
                Foreground="White"
                />
           

迄今為止一切順利,但按鈕還沒有起任何作用,我們還需要在按鈕上添加事件控制程序,當(dāng)點(diǎn)擊按鈕時(shí)就訪問反饋,在按鈕的結(jié)束方括號(hào)前插入光標(biāo),按Ctrl+空格鍵,代碼提示只有一個(gè)選項(xiàng),即點(diǎn)擊事件,雙擊選中它,將會(huì)顯示一個(gè)事件處理程序?qū)υ捒?,輸入Btn_Click作為事件的名稱,然后點(diǎn)擊確定。

 

圖 14 從代碼提示中選擇點(diǎn)擊事件,將會(huì)顯示一個(gè)事件處理程序?qū)υ捒?/STRONG>

#p#

這樣將會(huì)在代碼后臺(tái)文件Page.xaml.cs中創(chuàng)建一個(gè)事件處理程序占位符,然后打開它,事件處理程序只需要三行代碼。

首先我們以一個(gè)訪問服務(wù)器數(shù)據(jù)的WebClient對(duì)象為例進(jìn)行說明,因?yàn)槲覀円惒皆L問反饋,需要為OpenReadCompleted事件添加一個(gè)事件處理程序,最后,我們使用OpenReadAsync方法提交請(qǐng)求。 

private void Btn_Click(object sender, RoutedEventArgs arg1)
        {
            WebClient client = new WebClient();
            client.OpenReadCompleted +=
                  new OpenReadCompletedEventHandler(client_OpenReadCompleted);
            client.OpenReadAsync(
                  new Uri("        }
OpenReadCompleted

事件處理程序?qū)?huì)綁定反饋數(shù)據(jù)到顯示它的控制器上,在我們的例子中就是DataGrid,因此在添加處理程序之前,我們先回到Page.xaml添加好DataGrid。

在選項(xiàng)面板中點(diǎn)擊容器,拖動(dòng)DataGrid到代碼窗口,把它放在StackPanel下面,在兩個(gè)關(guān)閉標(biāo)記 和之間,這樣不僅在代碼中添加了DataGrid標(biāo)記,在文件的頂部還添加了額外的命名空間,然后在項(xiàng)目中添加了一個(gè)到System.Windows.Controls.Data的引用。

我們想給DataGrid取一個(gè)名字,以便可以在OpenReadCompleted事件處理程序中引用它,我們將把反饋數(shù)據(jù)綁定到它上面,名字就命名為gridSyndicationItems,然后添加兩個(gè)屬性:Grid.Row="1"(因?yàn)榱斜硎菑膅rid的第二行開始的,***行是row=0)和AutoGenerateColumns="false"(稍后會(huì)有詳細(xì)說明)。最后我們想要web頁面顯示選中的反饋,因此需要一個(gè)SelectionChanged事件觸發(fā)程序,代碼提示可以起到幫助作用,只需按Ctrl+空格鍵即可。

如果你不將AutoGenerateColumns設(shè)置為false,DataGrid將會(huì)為每個(gè)反饋?zhàn)詣?dòng)產(chǎn)生一列,通常這不是你想要的效果,如果你將其設(shè)置為false了,你可以進(jìn)一步設(shè)置顯示哪些列,這才是我們想要的,下面就是示例:

          AutoGenerateColumns="false" SelectionChanged="gridFeed_SelectionChanged" >
          
                    
                    
                        
           

   

Binding語句指定了每一列要顯示的字段,字段名稱是Syndication字段對(duì)象的屬性。
現(xiàn)在我們?cè)倩氐轿覀兊拇a隱藏文件Page.xaml.cs,為反饋?zhàn)x取完畢添加事件處理程序,在Btn_Click處理程序下面為OpenReadCompleted處理程序添加下面的代碼:

private void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
         {
            if (e.Error == null)
            {
                XmlReader reader = XmlReader.Create(e.Result);
                SyndicationFeed feed = SyndicationFeed.Load(reader);
                gridSyndicationItems.ItemsSource = feed.Items;
                reader.Close();
            }
          }

如果在讀取反饋時(shí)沒有遇到錯(cuò)誤,我們創(chuàng)建一個(gè)XmlReader對(duì)象,使用我們的反饋初始化它,然后將XmlReader載入名叫‘feed’的SyndicationFeed對(duì)象,它的項(xiàng)目屬性包含了反饋項(xiàng)目的集合,為了綁定反饋數(shù)據(jù)到DataGrid,我們?yōu)榉答來?xiàng)目指定DataGrid的ItemsSource屬性。

命名空間包含了SyndicationFeed類,但它還不是我們項(xiàng)目的一部分,在項(xiàng)目管理器中,展開SyndicationFeedReader項(xiàng)目,在‘引用’上點(diǎn)擊右鍵,選擇‘添加引用’。

 

圖 15 在SyndicationFeedReader項(xiàng)目的引用上點(diǎn)擊右鍵,選擇添加引用

此時(shí)會(huì)彈出一個(gè)可用組合的列表,那些在當(dāng)前項(xiàng)目中已經(jīng)引用了的項(xiàng)目以灰色高亮顯示,選擇System.ServiceModel.Syndication,點(diǎn)擊‘確定’按鈕。

 

圖 16 選擇Select System.ServiceModel.Syndication,點(diǎn)擊確定

接下來需要為代碼隱藏文件Page.xaml.cs添加一些‘using’提示:

using System.ServiceModel.Syndication;
using System.Xml;
using System.Windows.Browser;

在顯示選中的反饋時(shí)使用到了System.Xml和System.Windows.Browser,它包含兩部分內(nèi)容:

◆當(dāng)選擇的反饋項(xiàng)目發(fā)生變化時(shí)的事件處理程序

◆在頁面上以iframe形式顯示選中反饋的HTML

在OpenReadCompleted事件處理程序下面添加SelectionChanged事件處理程序,這次沒有自動(dòng)創(chuàng)建占位符了,代碼提示將會(huì)在未來的版本中增強(qiáng)。

private void gridFeed_SelectionChanged(object sender, EventArgs e)
        {
            SyndicationItem selectedItem =
                  (SyndicationItem)gridSyndicationItems.SelectedItem;
            HtmlElement element =
                   HtmlPage.Document.GetElementById("rssFrame");
            element.SetAttribute("src", selectedItem.Links[0].Uri.ToString());
        }

***行是更新選中的項(xiàng)目,它后面的兩行就是顯示內(nèi)容了,注意對(duì)rssFrame的引用,實(shí)際上它是一個(gè)要顯示的iframe的名字。

最后一步是將iframe添加到我們的HTML頁面中,在SyndicationFeedReader.Web項(xiàng)目中的SyndicationFeedReaderTestPage.html上點(diǎn)擊右鍵,選擇‘以…打開’‘文本編輯器’,首先限制Silverlight程序占整個(gè)頁面的50%,通過將silverlightControlHost的高度值從100調(diào)整到50實(shí)現(xiàn)。

#silverlightControlHost {
     height: 50%;
    }

然后在標(biāo)記前添加下面兩行代碼:

責(zé)任編輯:彭凡 來源: 51CTO
相關(guān)推薦

2020-05-21 14:03:21

python編程代碼

2024-11-28 11:34:54

2023-11-28 13:21:52

2009-06-02 15:20:16

eclipse tomtomcatplugitomcatplugi

2012-06-21 13:46:22

javascriptworklight嵌入式系統(tǒng)

2009-07-16 15:46:09

Windows Emb

2009-04-03 13:09:12

Windows Emb

2009-06-25 11:18:20

Silverlight

2009-03-12 16:18:14

Visual StudEclipseSilverlight

2021-01-13 10:33:57

云計(jì)算云遷移云平臺(tái)

2019-07-02 16:57:20

混合云技術(shù)Linux

2013-08-19 15:36:07

在家辦公程序員

2009-06-05 14:59:31

Eclipse中配置T

2009-06-17 17:44:41

Eclipse插件Sp

2009-07-16 15:27:13

Windows Emb

2010-11-25 10:05:22

Visual StudSilverlightWCF

2010-01-04 11:23:59

SilverLight

2009-02-17 14:22:40

Windows Emb

2012-10-29 13:25:54

JavaScriptJSjQuery

2015-04-24 09:48:59

TCPsocketsocket編程
點(diǎn)贊
收藏

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



  1.     
        <cite id="gflnw"><track id="gflnw"></track></cite>