国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

在Eclipse中開始Silverlight編程之旅

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

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

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

 

圖1 企業聯合組織反饋閱讀程序

安裝Silverlight開發工具箱

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

安裝這個Beta版本時需要注意幾件事情:

1.還沒有程序調試器,但這個已經列入開發計劃了。

2.Eclipse上的Silverlight插件還不支持64位Windows Vista系統,但修復這個問題也已經列入開發計劃了。

3.Ganymede的基礎版本已經可以工作得很好,當你安裝Silverlight模塊時,會自動解決依賴性問題。

當你安裝好Silverlight后,你應該更新到2008年10月的DataGrid,它幾乎修復了近30個bug,在這篇文章中將使用到DataGrid。

當你安裝好所有的先決條件后,就可以安裝Silverlight插件了,啟動Eclipse,然后選擇‘幫助’到‘軟件更新’,打開‘軟件更新和加載項’對話框,選擇‘可用的軟件’標簽,點擊‘添加站點’按鈕。

 

圖2 選擇可用的軟件標簽再點擊添加站點按鈕

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

 

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

在‘可用的軟件’標簽中將會顯示一條新的Silverlight項目,選擇它然后點擊‘安裝’按鈕,Eclipse將會安裝Silverlight及其依賴文件。

 

圖4 選擇Silverlight條目,點擊‘安裝’按鈕

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

 

圖5 立方體插件圖標就是Silverlight

點擊立方體圖標顯示Silverlight模塊信息對話框。

 

圖6 點擊立方體圖標顯示Silverlight模塊信息對話框

點擊‘插件詳細信息’按鈕查看所有的組件。

 

圖7 點擊插件詳細信息按鈕顯示所有組件

#p#

創建項目模板

至此我們已經準備好可以創建Silverlight應用程序了,選擇窗口打開透視圖其它,打開透視圖選擇對話框。

 

圖8 打開透視圖對話框

注意這里顯示兩條Silverlight,***個藍色立方體的條目表示是Eclipse風格的透視圖,左側是項目管理器,右側是選項停靠區域,第二個條目表示是VisualStudio風格透視圖,它們剛好相反。

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

 

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

接著你會看到新建項目對話框,輸入SyndicationFeedReader作為項目名,這個項目不依賴于其它任何項目,因此你可以不點擊‘下一步’按鈕,直接點擊‘完成’按鈕。

 

圖10在新建項目對話框中,輸入SyndicationFeedReader作為項目名稱

在開始動手之前,先看看都創建了些什么內容,項目管理器中顯示了兩個項目:SyndicationFeedReader和SyndicationFeedReader.Web。

 

圖11項目管理器中顯示了兩個項目:SyndicationFeedReader和SyndicationFeedReader.Web

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

如果這個時候編譯并運行的話,只會顯示一個空白頁面,但它給我們一個機會設置一些選項,選擇‘運行’‘運行配置’,啟動‘運行配置’對話框,在列表中選擇‘SilverlightWebApp’,然后點擊‘新建’按鈕。

 

圖12選項運行運行配置,啟動運行配置對話框

接著你會看到配置對話框,在名稱區域輸入SyndicationFeedReader,在用于測試的項目處選擇SyndicationFeedReader.Web,開始頁SyndicateFeedReaderTestPage.html也將被選中,點擊‘應用’,然后點擊‘運行’按鈕。

 

圖13輸入運行配置名稱,選擇項目開始頁面

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

#p#

為程序自定義代碼

現在我們在Page.xaml文件為用戶添加接口代碼,XAML即可擴充應用程序標記語言,XAML文件實際上是一個XML文件,雙擊Page.xaml在編輯器中打開它,下面面板顯示源代碼,上面面板顯示預覽效果。你會看到文件中已經包含了一些框架代碼,頂層的UserControl元素包含所有的Silverlight內容,我們從移除Width和Height參數開始,這樣

    xmlns="    xmlns:x="    >
   
       
           
           
       

   

Silverlight Grid控制和HTML表類似,但語法稍有不同,我們的Silverlight程序將包括兩行,上面的行容納一個標記和按鈕,下面的行容納反饋項目,及一個反饋項目列表,被選中的項目將以HTML樣式顯示。

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

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

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

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

想要增加一個文本塊(TextBlock),在選項面板上點擊控制器(Controls),然后拖動TextBlock到你的代碼窗口中兩個StackPanel標記之間,然后點擊按鈕,拖動按鈕控制器到代碼窗口中TextBlock下,象下面這樣配置控制器,不用告訴它不要使用grid的***行(row 0),因為默認就是這樣了,使用StackPanel時,你可以使用Ctrl+空格鍵得到語法幫助。


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

迄今為止一切順利,但按鈕還沒有起任何作用,我們還需要在按鈕上添加事件控制程序,當點擊按鈕時就訪問反饋,在按鈕的結束方括號前插入光標,按Ctrl+空格鍵,代碼提示只有一個選項,即點擊事件,雙擊選中它,將會顯示一個事件處理程序對話框,輸入Btn_Click作為事件的名稱,然后點擊確定。

 

圖 14 從代碼提示中選擇點擊事件,將會顯示一個事件處理程序對話框

#p#

這樣將會在代碼后臺文件Page.xaml.cs中創建一個事件處理程序占位符,然后打開它,事件處理程序只需要三行代碼。

首先我們以一個訪問服務器數據的WebClient對象為例進行說明,因為我們要異步訪問反饋,需要為OpenReadCompleted事件添加一個事件處理程序,最后,我們使用OpenReadAsync方法提交請求。 

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

事件處理程序將會綁定反饋數據到顯示它的控制器上,在我們的例子中就是DataGrid,因此在添加處理程序之前,我們先回到Page.xaml添加好DataGrid。

在選項面板中點擊容器,拖動DataGrid到代碼窗口,把它放在StackPanel下面,在兩個關閉標記 和之間,這樣不僅在代碼中添加了DataGrid標記,在文件的頂部還添加了額外的命名空間,然后在項目中添加了一個到System.Windows.Controls.Data的引用。

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

如果你不將AutoGenerateColumns設置為false,DataGrid將會為每個反饋自動產生一列,通常這不是你想要的效果,如果你將其設置為false了,你可以進一步設置顯示哪些列,這才是我們想要的,下面就是示例:

          AutoGenerateColumns="false" SelectionChanged="gridFeed_SelectionChanged" >
          
                    
                    
                        
           

   

Binding語句指定了每一列要顯示的字段,字段名稱是Syndication字段對象的屬性。
現在我們再回到我們的代碼隱藏文件Page.xaml.cs,為反饋讀取完畢添加事件處理程序,在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();
            }
          }

如果在讀取反饋時沒有遇到錯誤,我們創建一個XmlReader對象,使用我們的反饋初始化它,然后將XmlReader載入名叫‘feed’的SyndicationFeed對象,它的項目屬性包含了反饋項目的集合,為了綁定反饋數據到DataGrid,我們為反饋項目指定DataGrid的ItemsSource屬性。

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

 

圖 15 在SyndicationFeedReader項目的引用上點擊右鍵,選擇添加引用

此時會彈出一個可用組合的列表,那些在當前項目中已經引用了的項目以灰色高亮顯示,選擇System.ServiceModel.Syndication,點擊‘確定’按鈕。

 

圖 16 選擇Select System.ServiceModel.Syndication,點擊確定

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

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

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

◆當選擇的反饋項目發生變化時的事件處理程序

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

在OpenReadCompleted事件處理程序下面添加SelectionChanged事件處理程序,這次沒有自動創建占位符了,代碼提示將會在未來的版本中增強。

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());
        }

***行是更新選中的項目,它后面的兩行就是顯示內容了,注意對rssFrame的引用,實際上它是一個要顯示的iframe的名字。

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

#silverlightControlHost {
     height: 50%;
    }

然后在標記前添加下面兩行代碼:

責任編輯:彭凡 來源: 51CTO
相關推薦

2020-05-21 14:03:21

python編程代碼

2024-11-28 11:34:54

2023-11-28 13:21:52

2012-06-21 13:46:22

javascriptworklight嵌入式系統

2009-06-02 15:20:16

eclipse tomtomcatplugitomcatplugi

2009-06-25 11:18:20

Silverlight

2009-04-03 13:09:12

Windows Emb

2009-07-16 15:46:09

Windows Emb

2021-01-13 10:33:57

云計算云遷移云平臺

2009-03-12 16:18:14

Visual StudEclipseSilverlight

2013-08-19 15:36:07

在家辦公程序員

2019-07-02 16:57:20

混合云技術Linux

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

2020-02-11 16:49:24

React前端代碼
點贊
收藏

51CTO技術棧公眾號

91a在线视频| 国产成人aaaa| 日产精品久久久久久久性色| 免费av一区二区三区| 日韩精品视频在线观看网址| 26uuu色噜噜精品一区二区| 久久一区亚洲| 亚洲一区二区三区中文字幕在线观看| 欧美性猛交xxx乱大交3蜜桃| 艳母动漫在线免费观看| 欧美1o一11sex性hdhd| 久久久久这里只有精品| 欧美日韩黄色一区二区| 成人激情av网| 久久av影院| av电影在线观看| 欧美日韩亚洲综合一区二区三区激情在线 | 玛雅亚洲电影| eeuss在线观看| 丝袜人妻一区二区三区| 欧美激情在线观看| 欧美剧情片在线观看| 成人免费高清视频在线观看| 日韩在线影视| 欧美日韩色网| 波多野结衣在线中文| 国产精品一区二区你懂得| 97超碰国产精品女人人人爽| 欧美一区二区国产| 日本一区二区三区四区在线视频 | 国产激情在线视频| 天天干天天爽天天射| 亚洲一卡二卡区| 欧美亚洲另类视频| 国内精品久久久久影院 日本资源 国内精品久久久久伊人av | 亚洲深深色噜噜狠狠爱网站| 欧美性生活一级片| 十八禁视频网站在线观看| 国产欧美婷婷中文| 51精品在线观看| 按摩亚洲人久久| 日韩国产精品视频| 97免费视频在线| 欧美黄色成人网| 亚洲精品久久久久久久久| 一本久久精品一区二区| 一区二区三区在线看| 久久在线免费观看| 亚洲欧洲日韩精品在线| 黄色在线免费观看网站| 国产在线高清视频| 成av人片在线观看www| 黄色国产网站在线播放| 色网站在线免费观看| 成人一区二区不卡免费| jizz在线免费观看| 一二三中文字幕在线| 久久野战av| av激情在线| 亚洲日本一区二区三区在线观看| 欧美一区二区激情| 亚洲午夜高清视频| h七七www色午夜日本| 亚洲老女人av| 日韩jizzz| 中文字幕一区二区三区四区五区| 久久男人资源视频| 国内外成人免费视频| 国产欧美欧洲| 国产区一区二区三区| 久久av.com| 亚洲va码欧洲m码| 久久久久久一区| 亚洲精品国产suv一区88| 日韩av电影免费观看高清| 777久久精品一区二区三区无码| 在线观看污视频| 日韩视频在线观看视频| 日韩av三级在线| 国产三级日本三级在线播放| 韩国一区二区三区美女美女秀| 91精品国自产在线观看| 国产精品一区专区欧美日韩| 美女国内精品自产拍在线播放| 在线电影av不卡网址| 91久久爱成人| 亚洲欧洲在线一区| 精品视频在线观看一区| 中文在线资源在线| 妖精视频一区二区三区免费观看| 久久99国内精品| 一区二区三区亚洲| 青草久久伊人| 国产三级在线免费观看| 麻豆最新免费在线视频| 男人天堂久久| 91精品一区国产高清在线gif | 超碰在线一区| 9色精品在线| 国产精品国产三级国产普通话蜜臀| 精品福利在线视频| 亚洲国产精品va在线| 亚洲91精品在线| 四虎一区二区| 免费羞羞视频| heyzo在线欧美播放| 欧美午夜久久| 夜夜夜精品看看| 国产91精品视频在线观看| 男人日女人视频网站| 国产在线自天天| 欧美成人高清视频在线观看| 日本不卡电影| xnxx国产精品| 欧美日韩黄色影视| 欧美亚洲禁片免费| 国产精品一区二区三区不卡| 欧美黄色一级片视频| 91蜜桃在线视频| 国产日韩欧美一区二区三区| 国产精品自在在线| 国产成人综合在线观看| 亚洲国产天堂网精品网站| 国产精品久久久久久久久久新婚| 久久精品在线免费视频| 国产小黄视频| 日韩精品91| 美日韩一区二区三区| 久久人人爽国产| 亚洲精品高清国产一线久久| 色久视频在线观看| 日韩影视在线观看| 亚洲大片一区二区三区| 日韩视频免费观看高清在线视频| 日本一区二区三区免费观看| 亚洲国产精品一区二区第四页av | 午夜精品久久久久| 成人网欧美在线视频| 一级片免费在线观看| 你懂的国产精品| 中文字幕视频一区二区三区久| 亚洲欧美中日韩| 欧美成人在线免费视频| 一本一本a久久| 青草在线视频在线观看| 久久成人免费电影| 久久久精品国产亚洲| 污色网站在线观看| 亚洲人妖在线| 日韩女优制服丝袜电影| 国产有码在线一区二区视频| 国产视频一区二区三区在线播放| 伊人久久大香伊蕉在人线观看热v| 亚洲色图丝袜美腿| 97人人模人人爽人人喊38tv| 久久日韩视频| 中文字幕av一区 二区| 成人精品在线观看| 黑人一区二区三区| 欧洲精品视频在线观看| 干日本少妇首页| 欧美亚洲网站| 国产精品久久久久7777婷婷| 久久人体大尺度| 亚洲福利视频一区二区| 欧美在线一二三区| 日韩精品免费一区二区三区| 亚洲网址你懂得| 水莓100在线视频| 亚洲免费观看高清完整版在线观看| 乱一区二区三区在线播放| 九九热播视频在线精品6| 国产亚洲欧洲高清一区| 日韩a在线观看| 亚洲视频一二区| 日本不卡一区在线| 中文字幕电影一区| 人妻无码视频一区二区三区| 国产精品a级| 国产日韩欧美中文在线播放| 91成人在线| 日韩精品免费视频| 僵尸再翻生在线观看| 日韩女优电影在线观看| 黄网站app在线观看| 69p69国产精品| 免费大片在线观看www| 欧美一区三区二区| 黄色网在线播放| 欧美一区二区三区日韩视频| 在线免费观看av网站| 亚洲人成人一区二区在线观看 | 91免费综合在线| 亚洲精品a级片| 91在线国产电影| 99热这里只有精品8| 亚洲不卡中文字幕| 久久午夜影视| 成人9ⅰ免费影视网站| 精品日韩一区|



    

<rp id="sd7pa"></rp>