下面这个小例子演示了如何在Silverlight(或者WPF)中动态读取图片或者视频
页面部分
<UserControl x:Class="SilverlightApplication1.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480">
<StackPanel Name="pl" Orientation="Horizontal" >
<Image Width="100" Height="100" Name="pic">
Image>
<Button Name="bt" Width="100" Height="100" Click="Button_Click">
Button>
<MediaElement Name="video" Width="300" Height="300">
MediaElement>
<Button Name="bt2" Width="100" Height="100" Click="Button_Click_1">
Button>
StackPanel>
UserControl>
代码部分
using System.Windows;
using System.Windows.Controls;
using System.IO;
using System.Windows.Media.Imaging;
namespace SilverlightApplication1
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "JPG File|*.JPG";
if ((bool)ofd.ShowDialog())
{
FileStream fs = ofd.File.OpenRead();
BitmapImage image = new BitmapImage();
image.SetSource(fs);
pic.Source = image;
}
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Video File|*.wmv";
if ((bool)ofd.ShowDialog())
{
video.SetSource(ofd.File.OpenRead());
}
}
}
}
效果图