C# OpenFileDialog,WPF的Image控件使用
2020-06-06 本文已影响0人
Trytodo_zbs
需求
想做一个打开文件选择框,选择图片之后显示在软件界面的功能
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));
}
成功