Share via


試試看: 建立 RSS 新聞閱讀器

Cc294852.bf9c77b1-ba7a-4f3b-8380-d05728d208d1(zh-tw,Expression.40).png

新聞摘要或播客 (Podcast) 這類網頁摘要,通常會在內容中使用 XML 格式的檔案。您可以使用「閱讀器」 ** 或「匯集軟體」 ** 這類程式,訂閱網頁摘要並讀取其內容。閱讀器通常在您的電腦上會保持開啟,而且會在更新網頁摘要時以新內容自行更新。網頁摘要中最常用的傳遞機制為「真正簡易新聞訂閱方式」(RSS)。

下列程序顯示如何使用 Microsoft Expression Blend 建立簡單 RSS 閱讀器,並建立 RSS 摘要。RSS 閱讀器可以用來閱讀任何 XML 資料來源,甚至是本機檔案或網站上的 XML 檔案。

Note注意:

下列程序假設您已連線至網際網路。

Note注意:

Microsoft Silverlight 不支援 XML 資料來源。不過,您可以在 MSDN 的在 Silverlight 中剖析 XML 資料 Cc294852.xtlink_newWindow(zh-tw,Expression.40).png下找到關於使用 XML 資料的資訊。

建立資料來源

  1. 在 [資料] 面板中,按一下 [建立資料來源] Cc294852.601d2ab6-5e4b-49ab-bb3c-064456dc8184(zh-tw,Expression.40).png,然後再按一下 [定義新的 XML 資料來源]。

    [定義新的 XML 資料來源] 對話方塊隨即出現。

  2. 在 [資料來源名稱] 旁,輸入 rssDS

  3. 在 [XML 檔案路徑或 URL] 文字方塊旁,輸入 http://rss.msnbc.msn.com/id/3032127/device/rss/rss.xml

    tip note秘訣:

    您可以在 [XML 檔案路徑或 URL] 欄位中,使用 XML 檔案的任何 URL 或本機路徑。如果要使用不同的 RSS 摘要,請在網頁瀏覽器中開啟提供者的網站 (例如,http://www.msnbc.com) 然後搜尋其 RSS 摘要的連結,即可尋找 URL。一般來說,網站會列出可用的摘要以及可用來訂閱摘要的按鈕。請在其中找出您要使用之摘要的 XML 檔案連結。

  4. 在 [定義於] 下執行下列一項動作:

    • 若要讓應用程式中的所有文件都可以使用資料,請選取 [專案]。

    • 若只要讓目前的文件使用資料,請選取 [此文件]。

  5. 按一下 [確定]。

    [rssDS] 這個資料來源會新增至 [資料] 面板中。展開節點並檢查資料來源的各個欄位。這樣並不會顯示資料,但會顯示含有該資料的欄位名稱及其結構。

    您現在可以將應用程式中的控制項繫結至資料。

    新增 XML 資料來源之後的 [資料] 面板

    Cc294852.8ce5d9eb-ca88-4eb9-8ad1-4719fdc0514e(zh-tw,Expression.40).png

從專案面板拖曳資料欄位以繫結至資料欄位

有許多方法可以將控制項繫結至資料來源中的項目。下列程序顯示如何將資料來源欄位從 [資料] 面板拖曳至畫板,以建立兩個新的控制項。您也可以將資料來源欄位拖曳至現有控制項,以將資料繫結至那些控制項上的屬性。

  1. 在 [工具] 面板中,按一下 [資產] Cc294852.0d8b8d29-1af9-418f-8741-be3097d76eab(zh-tw,Expression.40).png

  2. 在 [資產] 面板中,選取 [控制項] 類別中的 [全部]。

  3. 按一下 [控制項],然後按一下 Image 控制項 Cc294852.adb61060-da5f-4279-8c0d-3681bfeb145c(zh-tw,Expression.40).png

  4. 使用滑鼠在畫板左上角繪製影像控制項,其寬度和高度都約為 100 像素。

  5. 在 [資料] 面板中,展開節點 [rss]、[channel] 及 [image]。將 [url : (String)] 節點拖曳至新的影像物件上。

    image 物件會顯示來自 MSNBC 網站的影像。[資料] 面板會在資料來源周圍顯示黃色週框方塊,指出該部分的資料已繫結至控制項。

    Image 物件已新增並繫結至 URL 資料項目之後的畫板 (您的畫板外觀可能會不同)

    Cc294852.eb3b12e1-64d7-4a49-b2a8-fc433a34ca2f(zh-tw,Expression.40).png

  6. 在 [資料] 面板中,展開節點 [rssDS]、[rss] 及 [channel]。將 [title : (String)] 節點拖曳至畫板上影像物件右邊的位置。

    隨即建立 TextBlock 控制項,以顯示新聞摘要的標題。請使用 [選取] 工具移動及縮放文字區塊物件,然後使用 [屬性] 面板之 [文字] 和 [筆刷] 類別中的屬性,變更文字的顯示方式。

    文字區塊物件已新增並繫結至標題資料項目之後的畫板 (您的畫板外觀可能會不同)

    Cc294852.f5b9f7c7-e622-4f62-a151-1e449c6d4588(zh-tw,Expression.40).png

使用資料內容將多個控制項繫結至相同的資料

將「資料內容」 ** 指派至父物件時,可允許所有子物件使用相同的資料快照。當您要建立「清單/詳細資料」 ** 設計時,這個功能會很有幫助;這是指如果您按一下清單中的項目 (清單窗格),便會在另一個物件中顯示該項目的詳細資料 (詳細資料窗格)。

  1. 建立 Grid  版面配置容器 Cc294852.a87ee957-7fbf-4135-a6ab-6de7e63160aa(zh-tw,Expression.40).png 來涵蓋影像和標題下的區域。產生的格線物件將是父物件,資料內容會在該處以下一步驟自動設定。

  2. 在 [物件與時間軸] 面板中選取新的格線物件以啟用該物件,讓您可以新增子物件。

  3. 在 [資料] 面板中,確認已選取 [清單模式] Cc294852.9ad55afc-08ac-4f9a-ab3a-d55d0cf184d3(zh-tw,Expression.40).png。在清單模式中從 [資料] 面板拖曳的項目會建立清單控制項。

  4. 展開節點 [rss]、[channel] 和 [item (Array)]。將 [title : (String)] 節點拖曳至格線物件的左上角。

    此時會建立 ListBox 控制項,並在控制項中填入 [item (Array)] 集合中的所有新聞報導標題。如果您選取 grid 物件並查看 [屬性] 面板,將會看到 DataContext 屬性周圍有黃色週框方塊,表示該屬性已繫結至資料。如果您選取清單方塊物件,將會看到繫結至資料的 ItemsSource 屬性。

    Note注意:

    ItemsSource 屬性可以設為任何項目集合。您一次只能使用 ItemsSourceItems 這兩個屬性的其中一個。 ItemsSource 屬性通常會用來繫結至所產生項目的集合。您可以透過使用 [編輯此集合的項目] 按鈕的方式,使用 Items 屬性來手動新增個別項目。

    ListBox 物件已新增並繫結至 item(Array) 資料集合之後的畫板 (您的畫板外觀可能會不同)

    Cc294852.6e02aab9-751f-49ee-ac12-65d92eb432ef(zh-tw,Expression.40).png

  5. 在 [資料] 面板中,按一下 [詳細資料模式] Cc294852.7786ee28-da1d-41b2-93fd-b4caeb75ab98(zh-tw,Expression.40).png

  6. 展開節點 [rss]、[channel] 和 [item (Array)]。將 [description : (String)] 節點拖曳至 grid 物件的右側。

    建立的格線物件內部含有文字區塊物件,其中顯示所選新聞報導的描述。如果您選取文字區塊物件並查看 [屬性] 面板,將會看到 Text 屬性周圍有黃色週框方塊,表示該屬性已繫結至資料。若要查看資料繫結的詳情,請按一下 Text 屬性旁的 [進階選項] Cc294852.e3343378-f63e-4d8f-9847-97c1a58aadc5(zh-tw,Expression.40).png,然後按一下 [資料繫結]。

    TextBlock 物件已新增並繫結至 Description 資料項目之後的畫板 (您的畫板外觀可能會不同)

    Cc294852.7e00a38f-ea59-47a3-84cd-3caf57c6d805(zh-tw,Expression.40).png

  7. 按下 F5 執行應用程式,然後按一下清單方塊中的任何項目,將選項變更為閱讀不同的新聞描述。

    Note注意:

    有些項目可能包含 HTML 文字。您可以建立會從 [描述] 字串中移除 HTML 元素的值轉換器,然後在 [建立資料繫結] 對話方塊中套用該值轉換器。如需有關建立值轉換器的詳細資訊,請參閱試試看:將資料從某種類型轉換成另一種類型

Copyright © 2011 by Microsoft Corporation. All rights reserved.