美文网首页
C# OpenFileDialog,WPF的Image控件使用

C# OpenFileDialog,WPF的Image控件使用

作者: Trytodo_zbs | 来源:发表于2020-06-06 01:05 被阅读0次

    需求

    想做一个打开文件选择框,选择图片之后显示在软件界面的功能

    1)打开文件选择框

    网上一查基本上就知道使用OpenFileDialog

    //需要添加引用
    using System.Windows.Forms;
    //如果有IO文件操作
    using System.IO;
    
    OpenFileDialog dialog = new OpenFileDialog(){
      InitialDirectory = @"C:\Users\pc\Desktop",//设置文件打开初始目录为桌面
      Title = "请选择图片",//设置打开文件对话框标题
      Filter = "图片文件(*.jpg,*.gif,*.bmp,*.png)|*.jpg;*.gif;*.bmp;*.png",//设置文件过滤类型
      RestoreDirectory = true //设置对话框是否记忆之前打开的目录
    }
    //这里的DialogResult最好加前缀System.Windows.Forms.不然可能会报错
    if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)//当点击文件对话框的确定按钮时打开相应的文件
    {
      //将选中的文件的路径传递给相应控件比如Image,PictureBox
    }
    

    这里一定要注意System.Windows.Forms的引用很有可能会没有这个时候需要在vs studio中添加
    项目(P) → 添加引用(R) → 浏览(B)
    找到对应的文件目录,选择对应的版本的net framework,一般路径是在

    C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework

    该文件夹下有各个版本Framework文件夹,选中里面的相应dll文件,点击确定

    2)将返回的路径赋值给控件

    搜索OpenFileDialog网上给的例子都是使用的PictureBox

    //添加引用
    //该引用可能也会提示不存在报错,也需要使用上面添加System.Windows.Forms的方式添加一下
    using System.Drawing;
    
    if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)//当点击文件对话框的确定按钮时打开相应的文件
    {
      //将选中的文件的路径传递给相应控件比如Image,PictureBox
      PictureBox.Image = Image.FromFile(dialog.FileName);
    }
    

    使用PictureBox有一个问题,我创建的是WPF窗口应用,直接使用PictureBox会报错,怎么解决这个问题我暂时没有研究,你们有需要的可以自己取查一查资料

    而我就想试试使用Image控件...
    首先试着直接赋值

    <Image
      Width="190" 
      Height="190"
      x:Name="FileShow"
      Stretch="UniformToFill">
    </Image>
    
    if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)//当点击文件对话框的确定按钮时打开相应的文件
    {
      //将选中的文件的路径传递给相应控件比如Image,PictureBox
      FileShow.Source= dialog.FileName;
    }
    

    然后报错,不能将string类型数据直接赋值给Source对象
    根据提示这是个System.Windows.Media.ImageSource类型数据

    查找这个数据类型讲了一堆
    最后百度知道里给的答案:百度知道

    if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)//当点击文件对话框的确定按钮时打开相应的文件
    {
      //将选中的文件的路径传递给相应控件比如Image,PictureBox
      FileShow.Source= new BitmapImage(new Uri(dialog.FileName));
    }
    

    成功

    相关文章

      网友评论

          本文标题:C# OpenFileDialog,WPF的Image控件使用

          本文链接:https://www.haomeiwen.com/subject/qjbazhtx.html