Silverlight 讀取嵌入在.xap檔案中的檔案內容

孟子E章發表於2009-05-06

假如在 SilverlightApplication6 工程中新增一個資料夾 Content ,下面放置一個 mxh.txt 檔案和 mxh.jpg 的照片,檔案內容隨便寫。在“解決方案瀏覽器”的檔案屬性中,設定“Build Action”為“Content”;“Copy to Output Directory”屬性設定為“Do not copy”。
在 xaml 檔案中輸入: 

XAML 程式碼
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --&gt<UserControl x:Class="SilverlightApplication6.MainPage"
    xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"
    Width
="800" Height="600">
    
<Grid x:Name="LayoutRoot" Background="White">
    
<Canvas Width="800" Height="600">
      
<TextBox x:Name="TextBoxName" Height="30" Canvas.Top="10">TextBox>
      
<Image x:Name="ImageNameIncude" Canvas.Top="60" Height="200">Image>
      
<Image x:Name="ImageNameEmbed" Canvas.Top="260" Height="100">Image>
    
Canvas>
  
Grid>
UserControl>

  xaml.cs 內容輸入: 

C# 程式碼
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --&gtusing System;
using System.Windows;
using System.Windows.Media.Imaging;
using System.Windows.Controls;
using System.IO;
using System.Windows.Resources;

namespace SilverlightApplication6
{
  
public partial class MainPage : UserControl
  {
    
public MainPage()
    {
      InitializeComponent();

      
// 讀取文字
      StreamResourceInfo r = Application.GetResourceStream(new Uri("Content/mxh.txt", UriKind.Relative));
      StreamReader sr
= new StreamReader(r.Stream);
      TextBoxName.Text
= sr.ReadToEnd();
      sr.Dispose();

      
//顯示 Build Action 為 Content  圖片
      r = Application.GetResourceStream(new Uri("Content/mxh.jpg", UriKind.Relative));
      BitmapImage bmp1
= new BitmapImage();
      bmp1.SetSource(r.Stream);
      ImageNameIncude.Source
= bmp1;

      
//顯示 Build Action 為 Resource  圖片
      r = Application.GetResourceStream(new Uri("SilverlightApplication6;component/Content/mxh2.jpg", UriKind.Relative));
      BitmapImage bmp2
= new BitmapImage();
      bmp2.SetSource(r.Stream);
      ImageNameEmbed.Source
= bmp2;
    }
  }
}

 按F5進行編譯預覽,即可在  TextBox 中看到 mxh.txt檔案的內容和顯示孟憲會的照片。

 注意:分隔符“;component/”是必須的。另外注意程式集 SilverlightApplication 的名字。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15723462/viewspace-594344/,如需轉載,請註明出處,否則將追究法律責任。

相關文章