在Metro应用程序中从FileSystem设置ImageSource

时间:2012-09-30 11:28:50

标签: c# windows-8 windows-runtime winrt-xaml

在ApplicationData.Current.RomanigFolder中,我保存了一个jpg文件。可以在流或MemoryStream中读取此文件的内容并将其设置为ImageSource吗?

我在带有以下代码的.NET 4.0的WPF应用程序中使用它:(img是一个XAML-Image-Control

BitmapImage bi = new BitmapImage();
bi.BeginInit();
bi.CacheOption = BitmapCacheOption.OnLoad;
StreamReader sr = new StreamReader(data.message.imageUrl);
bi.StreamSource = sr.BaseStream;
bi.EndInit();
img.Source = bi;
sr.Close();

对于Metro应用程序,我看不到将StreamSource设置为BitmapImage的方法。如何将图像文件设置为图像控制?

1 个答案:

答案 0 :(得分:1)

用于编写“Metro Style Apps”或为Windows 8构建的应用程序,以在WPF项目中设置图像的来源。

以下是代码:

// Usage
myImage.Source = ImageFromRelativePath(this, "relative_path_to_file_make_sure_build_set_to_content");

public static BitmapImage ImageFromRelativePath(FrameworkElement parent, string path)
{
    var uri = new Uri(parent.BaseUri, path);
    BitmapImage result = new BitmapImage();
    result.UriSource = uri;
    return result;
}

参考:http://www.codingbeta.com/programatically-setting-image-source-in-metro-style-apps-with-wpf/