我有一個文本框,其中用戶將進入的圖像的URL:設定從代碼的圖像源後面
假設用戶進入下面的字符串 - > C:\用戶\馬爾科姆\桌面\ img.png
imgSilverPart是一個圖像控件和imageUrl是一個字符串,我從文本框中獲得。
imgSilverPart.Source = new BitmapImage(new Uri(imageUrl,UriKind.RelativeOrAbsolute));
但圖像沒有被顯示。
我有一個文本框,其中用戶將進入的圖像的URL:設定從代碼的圖像源後面
假設用戶進入下面的字符串 - > C:\用戶\馬爾科姆\桌面\ img.png
imgSilverPart是一個圖像控件和imageUrl是一個字符串,我從文本框中獲得。
imgSilverPart.Source = new BitmapImage(new Uri(imageUrl,UriKind.RelativeOrAbsolute));
但圖像沒有被顯示。
這不起作用。 Silverlight運行在安全的沙箱中,您不能只訪問桌面上的文件。 因此,您必須調用OpenFileDialog,將Stream傳送到用戶選擇的文件,並將Stream設置爲BitmapImage的源。
添加在XAML一個按鈕,做的Click事件處理程序如下:
private void Button_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog openFileDlg = new OpenFileDialog();
if (openFileDlg.ShowDialog().Value)
{
using (var stream = openFileDlg.File.OpenRead())
{
var bitmapImage = new BitmapImage();
bitmapImage.SetSource(stream);
imgSilverPart.Source = bitmapImage;
}
}
}
因爲它可能使用一些特殊的文件夾,如果你的應用在提升的信任模式下運行作爲外的瀏覽器替代應用程序。
Silverlight無法直接從您的硬盤訪問文件,就像您正在嘗試的那樣。這將是一個巨大的安全風險。 Silverlight只能訪問自己的存儲空間中的文件,稱爲IsolatedStorage。 – 2010-02-18 14:49:24