从文本框打开图像位置
本文关键字:图像 位置 文本 | 更新日期: 2023-09-27 18:18:48
我有openfiledialog读取用户图像地址与文件信息,并加载到文本框
我想有另一个按钮,以打开图像地址(已保存在文本框)
如何在WPF编码此按钮?我知道我应该用过程。开始但不知道!
Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
tbl_Moshtari tt = new tbl_Moshtari();
dlg.FileName = "pic-file-name"; // Default file name
dlg.DefaultExt = ".jpg"; // Default file extension
dlg.Filter = "JPEG(.jpeg)|*.jpeg | PNG(.png)|*.png | JPG Files (*.jpg)|*.jpg|GIF Files (*.gif)|*.gif"; // Filter files by extension
Nullable<bool> result = dlg.ShowDialog();
if (result == true)
{
//// picbox.Source = new BitmapImage(new Uri(dlg.FileName, UriKind.Absolute));
//bitmapImage = new BitmapImage();
//bitmapImage.BeginInit();
//bitmapImage.StreamSource = System.IO.File.OpenRead(dlg.FileName);
//bitmapImage.EndInit();
////now, the Position of the StreamSource is not in the begin of the stream.
//picbox.Source = bitmapImage;
FileInfo fi = new FileInfo(dlg.FileName);
string filename = dlg.FileName;
txt_picaddress.Text = filename;
System.Windows.MessageBox.Show("Successfully done");
}
第二个按钮是
private void btn_go_Click(object sender, RoutedEventArgs e)
{
Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
//FileInfo fi = new FileInfo(dlg.FileName);
string filename = dlg.FileName;
Process.Start(filename);
}
这对我不起作用。
Process.Start()
应该打开图像,只要filename
是到文件的绝对路径。话虽如此,在你的btn_go_Click
方法中,你实际上是打开对话框来获取文件名吗?如果不显示对话框,dlg.FileName
返回一个空字符串,在这种情况下Process.Start()
失败。
如果文件名需要来自前一个对话框,你不应该创建一个新的对话框;相反,改变
Process.Start(filename)
Process.Start(txt_picaddress.Text)
当然,您需要做一些输入验证以确保路径是正确的(除非文本框是只读的)。
另外,考虑在string filename = dlg.FileName;
上设置一个断点,以确保如果它仍然不能工作,它有正确的文件路径。
打开并突出显示Windows Explorer
中的文件:
string filename = txt_picaddress.Text;
ProcessStartInfo pInfo =
new ProcessStartInfo("explorer.exe", string.Format("/Select, {0}", filename));
Process.Start(pInfo);
在第二个代码示例中,您创建了openFileDialog的新实例,您需要使用先前的openFileDialog实例,该实例保存了正确的图像文件名:
如果你在窗口构造函数中创建第一个openFileDialog,你可以这样做:
private void btn_go_Click(object sender, RoutedEventArgs e)
{
string filename = this.dlg.FileName;
Process.Start(filename);
}
希望这对你有帮助,这是我能说给你提供的代码
如果你想在文本框中使用路径,则不需要在btn_go_Click
中添加OpenFileDialog
:
private void btn_go_Click(object sender, RoutedEventArgs e)
{
string filename = txt_picaddress.Text;
Process.Start(filename);
}