微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在silverlight中使用OpenFileDialog浏览本地图片

 
     因为在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 >


相应Page.xaml.cs文件代码如下:

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();
                }
            }
        }
    }
}


    代码很简单,大家看一下注释就可以了,总体感觉又回到了在学校时用delphi开发图片游览器的时候了:)

    源码下载链接请 点击这里

    有兴趣的朋友不妨在这个DEMO上再开发新的功能,如上传图片格式转换什么的, 相信会有所收获的:)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐