試試看: 建立 RSS 新聞閱讀器
新聞摘要或播客 (Podcast) 這類網頁摘要,通常會在內容中使用 XML 格式的檔案。您可以使用「讀取器」或「匯集軟體」這類程式,訂閱網頁摘要並讀取其內容。閱讀器通常在您的電腦上會保持開啟,而且會在更新網頁摘要時以新內容自行更新。網頁摘要中最常用的傳遞機制為「真正簡易新聞訂閱方式」(RSS)。
下列程序顯示如何使用 Microsoft Expression Blend 建立簡單 RSS 閱讀器,並建立 RSS 摘要。RSS 閱讀器可以用來閱讀任何 XML 資料來源,甚至是本機檔案或網站上的 XML 檔案。
注意事項: |
---|
下列程序假設您已連線至網際網路。 |
注意事項: |
---|
Silverlight 2 不支援 XML 資料來源。不過,您可以在 MSDN 的在 Silverlight 中剖析 XML 資料下找到關於使用 XML 資料的資訊。 |
建立資料來源
建立資料來源
在 Expression Blend 中,按一下 [檔案] 功能表上的 [新增專案],然後按一下 [WPF 應用程式 (.exe)]。
隨即建立新專案。
在 [專案] 面板的 [資料] 下,按一下 [+XML]。
隨即開啟 [新增 XML 資料來源] 視窗。
在 [連線名稱] 欄位中輸入 rssDS,並在 [XML 資料的 URL] 欄位中輸入 RSS 摘要的 URL。例如,若要建立 MSNBC 氣象摘要的 XML 資料來源,請輸入 "http://rss.msnbc.msn.com/id/3032127/device/rss/rss.xml"。按一下 [確定]。
秘訣: 您可以在 [XML 資料的 URL] 欄位中,使用任何 URL 或 XML 檔案的本機路徑。如果要使用不同的 RSS 摘要,請在網頁瀏覽器中開啟提供者的網站 (例如,http://www.msnbc.com) 然後搜尋其 RSS 摘要的連結,即可尋找 URL。一般來說,網站會列出可用的摘要以及可用來訂閱摘要的按鈕。請在其中找出您要使用之摘要的 XML 檔案連結。
[rssDS] 這個資料來源會新增至 [專案] 面板的 [資料] 中。展開節點並檢查資料來源的各個欄位。這樣並不會顯示資料,而只會顯示含有該資料的欄位名稱及其結構。
您現在可以將應用程式中的控制項繫結至資料。
新增 XML 資料來源之後的 [資料] 面板
回到頁首
從專案面板拖曳資料欄位以繫結至資料欄位
有許多方法可以將控制項繫結至資料來源中的項目。下列程序顯示如何將資料來源欄位從 [專案] 面板拖曳至畫板,以建立兩個新的控制項。您也可以將資料來源欄位拖曳至現有控制項,以將資料繫結至那些控制項上的屬性。
從專案面板拖曳資料欄位以繫結至資料欄位
在 [專案] 面板的 [資料] 下,展開節點 [rss]、[channel] 及 [image]。請將 [url : (String)] 節點拖曳至畫板的左上角。請在出現的下拉式清單上,按一下 [Image] 控制項。
隨即會在畫板上建立 [Image] 物件,並且開啟 [建立資料繫結] 對話方塊。
[選取欄位] 會指定您要將 URL 資料項目繫結至的 Image 物件屬性。預設選項 ([Source]) 正確,因此請按一下 [確定]。
畫板上的 Image 物件會反映從資料項目的 URL 中找到的影像。請使用 [選取] 工具 ,將 Image 物件拖曳至畫板的左上角,然後將該物件調小。
Image 物件已新增並繫結至 URL 資料項目之後的畫板 (您的影像可能會不同)。
在 [專案] 面板的 [資料] 下,展開節點 [rssDS]、[rss] 及 [channel]。將 [title : (String)] 節點拖曳至 Image 物件右邊的畫板上。請在出現的下拉式清單上,按一下 [Label] 控制項。列在 [建立資料繫結] 對話方塊的 [選取欄位] 旁邊的預設屬性正確 ([Content]),因此請按一下 [確定]。
[建立資料範本] 對話方塊會隨即出現。
已選取 [新資料範本與顯示欄位] 選項,而且設定之後就可以建立會在 TextBlock 控制項中顯示標題資料項目的資料範本。按一下 [確定]。
新聞摘要的標題會顯示在畫板的新 Label 控制項中。請使用 [選取] 工具移動及縮放 Label 物件,然後使用 [屬性] 面板之 [文字] 和 [筆刷] 類別中的屬性變更文字的顯示方式。
注意事項: 您在 [物件與時間軸] 之下不會看見 TextBlock 控制項,因為 TextBlock 控制項屬於 [產生的內容] 資料範本的一部分,此範本用於設計當控制項繫結至資料時控制項的外觀。如需有關範本的詳細資訊,請參閱建立或編輯控制項範本。
Label 物件已新增並繫結至標題資料項目之後的畫板 (您的畫板外觀可能會不同)
回到頁首
使用資料內容將多個控制項繫結至相同的資料
將資料內容指派給父系物件,可讓您在多個子物件中使用相同的資料快照。當您要建立「主圖形/詳細資料」設計時,這個功能會很有幫助;這是指如果您按一下清單中的項目 (主要窗格),會在另一個物件中顯示該項目的詳細資訊 (詳細資料窗格)。
使用資料內容將多個控制項繫結至相同的資料
建立 [格線] 面板 來涵蓋影像和標題下的區域。Grid 物件將會是您用來設定資料內容的父系物件。
在 [物件與時間軸] 下,按一下新的 Grid 物件加以選取,然後尋找 [屬性] 面板之 [一般屬性] 下的 [DataContext] 屬性。
按一下與 [DataContext] 屬性相關聯的 [進階屬性選項] 按鈕,然後按一下 [資料繫結]。
[建立資料繫結] 對話方塊隨即開啟。
在 [資料欄位] 索引標籤 (預設值) 的 [資料來源] 下,按一下 [rssDS]。在 [欄位] 下,展開節點 [rss] 及 [channel],並按一下 [item (Array)],然後按一下 [完成]。
您已將項目集合從資料來源指派給新的格線物件。格線物件的任何子物件現在都可使用相同的項目集合快照。
使用 [選取] 工具,按兩下新格線物件以啟動它,這樣您就可以新增子物件。
在 [工具箱] 中選取 [ListBox] 控制項 ,然後繪製會佔據格線左半部的 ListBox。
使用 [選取] 工具選取 [ListBox],然後尋找 [屬性] 面板之 [一般屬性] 下的 [ItemsSource] 屬性。
注意事項: [ItemsSource] 屬性可以設為任何項目的集合。您一次只能使用 [ItemsSource] 或 [Items] 這兩個屬性的其中一個。[ItemsSource] 屬性通常會用來繫結至所產生項目的集合。您可以透過使用 [編輯此集合的項目] 按鈕的方式,使用 [Items] 屬性來手動新增個別項目。
按一下與 [ItemsSource] 屬性相關聯的 [進階屬性選項] 按鈕,然後按一下 [資料繫結]。
[建立資料繫結] 對話方塊隨即開啟。
按一下 [明確資料內容] 索引標籤。在 [欄位] 下,展開節點 [rss] 及 [channel],然後按一下 [item (Array)]。按一下 [定義 DataTemplate] 按鈕。
[建立資料範本] 對話方塊隨即開啟。
選取第三個選項 [新資料範本與顯示欄位] (預設值)。清除 [項目] 旁邊的核取方塊,以快速清除所有核取方塊。選取 [title] 旁的核取方塊,然後按一下 [確定]。
ListBox 物件現在已繫結至 [item (Array)] 資料,並顯示新項目的清單。
ListBox 物件已新增並繫結至 item(Array) 資料集合之後的畫板 (您的畫板外觀可能會不同)
在 [工具箱] 中選取 [TextBlock] 控制項 ,然後繪製會佔據格線右半部的 TextBlock。
使用 [選取] 工具選取 [TextBlock],然後尋找 [屬性] 面板之 [一般屬性] 下的 [Text] 屬性。按一下與 [Text] 屬性相關聯的 [進階屬性選項] 按鈕,然後按一下 [資料繫結]。
注意事項: 在畫板中新增文字控制項時,Expression Blend 會進入該控制項的編輯模式。這表示您可以立即在控制項中輸入內容,但是無法存取控制項的所有屬性。若要結束控制項的編輯模式,請按下 ESC 鍵,或按一下 [選取] 工具。
[建立資料繫結] 對話方塊隨即開啟。
按一下 [明確資料內容] 索引標籤。在 [欄位] 下,展開節點 [rss]、[channel] 及 [item (Array)],然後按一下 [description : (String)]。按一下 [完成]。
TextBlock 物件現在已繫結至 ListBox 中所選項目的 [description] (因為這兩個控制項共用相同的資料內容),並顯示描述。
TextBlock 物件已新增並繫結至 Description 資料項目之後的畫板(您的畫板外觀可能會不同)。
按下 F5 執行應用程式,然後按一下應用程式中的 ListBox,將該選項變更為閱讀不同的新聞描述。
注意事項: 有些項目可能包含 HTML 文字。您可以建立會從 [描述] 字串中移除 HTML 元素的值轉換器,然後在 [建立資料繫結] 對話方塊中套用該值轉換器。如需有關建立值轉換器的詳細資訊,請參閱試試看:建立及套用值轉換器。
回到頁首