因为在Silverlight 2.0可以OpenFileDialog来访问本地文件,所以在Mike Taulty视频教程中也对这
个新特性进行了介绍,并做了一个简单的DEMO,如下所示(可以左右拖动调整图片宽度):
而实现这个功能的代码开发只有仅仅14行,简单得不能再简单了.
首先,我们先建立一个Silverlight Application, 然后将下面的xaml代码拷入到Page.xaml中:
<
Grid x:Name
=
"
LayoutRoot
"
Background
Black
ShowGridLines
False
Margin
8
>
Grid.ColumnDeFinitions
ColumnDeFinition Width 196 /> * </ Grid.RowDeFinitions RowDeFinition Height 48 ListBox x:Name myList HorizontalAlignment Stretch VerticalAlignment
ItemsSource {Binding}
Grid.Row 0
Grid.Column
Grid.RowSpan 2
SelectionChanged OnSelectionChanged ListBox.ItemTemplate
DataTemplate
TextBlock Text {Binding Name} ListBox
GridSplitter Width 1 Left Grid.Column Image x:Name myImage Button Grid.Row
Grid.Column
Content 选择图片
Margin Click OnClick FontSize 16
Grid >
Grid.ColumnDeFinitions
ColumnDeFinition Width 196 /> * </ Grid.RowDeFinitions RowDeFinition Height 48 ListBox x:Name myList HorizontalAlignment Stretch VerticalAlignment
ItemsSource {Binding}
Grid.Row 0
Grid.Column
Grid.RowSpan 2
SelectionChanged OnSelectionChanged ListBox.ItemTemplate
DataTemplate
TextBlock Text {Binding Name} ListBox
GridSplitter Width 1 Left Grid.Column Image x:Name myImage Button Grid.Row
Grid.Column
Content 选择图片
Margin Click OnClick FontSize 16
Grid >
public
partial
class
Page : UserControl
{
Page()
{
InitializeComponent();
}
// 将选择图片按钮单击事件
void OnClick( object sender, EventArgs args)
{
OpenFileDialog openFileDialog = new OpenFileDialog()
{
Filter Jpeg Files (*.jpg)|*.jpg|All Files(*.*)|*.* ,
EnableMultipleSelection true
};
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
向ListBox控件加载图片列表数据 myList.DataContext openFileDialog.SelectedFiles;
}
}
private OnSelectionChanged( ((e.AddedItems != null ) && (e.AddedItems.Count 0 ))
{
获取选取的图片信息 FileDialogFileInfo fi e.AddedItems[ ] as FileDialogFileInfo;
(fi )
{
using (Stream stream fi.OpenRead())
{
获取图片流信息并完成与Image控件的绑定 BitmapImage image BitmapImage();
image.SetSource(stream);
myImage.source image;
myImage.Visibility Visibility.Visible;
stream.Close();
}
}
}
}
}
{
Page()
{
InitializeComponent();
}
// 将选择图片按钮单击事件
void OnClick( object sender, EventArgs args)
{
OpenFileDialog openFileDialog = new OpenFileDialog()
{
Filter Jpeg Files (*.jpg)|*.jpg|All Files(*.*)|*.* ,
EnableMultipleSelection true
};
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
向ListBox控件加载图片列表数据 myList.DataContext openFileDialog.SelectedFiles;
}
}
private OnSelectionChanged( ((e.AddedItems != null ) && (e.AddedItems.Count 0 ))
{
获取选取的图片信息 FileDialogFileInfo fi e.AddedItems[ ] as FileDialogFileInfo;
(fi )
{
using (Stream stream fi.OpenRead())
{
获取图片流信息并完成与Image控件的绑定 BitmapImage image BitmapImage();
image.SetSource(stream);
myImage.source image;
myImage.Visibility Visibility.Visible;
stream.Close();
}
}
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。