如何通过wpf中的代码添加现有项目

山寨游戏

我试图将选定的图像复制到文件夹,然后想用 Image 对象显示它。复制工作正常,但是当我想显示它时,程序似乎找不到它。仅当我手动使用“添加现有项目”时显示图像才有效。有没有办法自动添加?

这是我的代码:

string name = "image1";

OpenFileDialog dialog = new OpenFileDialog();

Nullable<bool> dialogOK = dialog.ShowDialog();

if(dialogOK == true)
{
     File.Copy(dialog.FileName, @"..\..\Images\" + name + ".png", true);


     image.Source = new BitmapImage(new Uri(@"Images\" + name + ".png", UriKind.Relative));
}

(“图像”在 xaml 中定义)

克莱门斯

使用绝对路径加载 BitmapImage 似乎更安全:

var dialog = new OpenFileDialog();

if (dialog.ShowDialog() == true)
{
    var targetFile = @"..\..\Images\" + name + ".png";
    var currentDir = Environment.CurrentDirectory;
    var targetPath = Path.Combine(currentDir, targetFile);
    var targetDir = Path.GetDirectoryName(targetPath);

    Directory.CreateDirectory(targetDir);

    File.Copy(dialog.FileName, targetPath, true);

    image.Source = new BitmapImage(new Uri(targetPath));
}

为了在加载 BitmapImage 后直接释放文件,从 FileStream 加载它:

BitmapImage bitmap = new BitmapImage();

using (var stream = File.OpenRead(targetPath))
{
    bitmap.BeginInit();
    bitmap.CacheOption = BitmapCacheOption.OnLoad;
    bitmap.StreamSource = stream;
    bitmap.EndInit();
}

image.Source = bitmap;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何通过php脚本将项目添加到现有的json文件中

如何在Eclipse中创建项目并添加现有项目?

如何使用bluemix在git中添加现有项目

如何通过jQuery中的现有类添加类

如何将Go代码添加到现有项目中

将现有项目添加到源代码管理中的空白解决方案

如何在JTabbedPane中的现有项目中添加额外的项目?

如何通过补丁请求将另一个模型中的现有项目添加为 M2M 字段?

如何将新项目代码推送到现有 github 存储库中的特定分支?

如何在vs代码中打开现有的blazor项目

如何在C#中调用将文本添加到现有代码中的函数?

如何通过在Firebase中搜索特定节点在现有文档中添加数据?(Android)

如何在Xcode中将现有Xcode项目添加到git版本控件中?

如何在 Vuejs - Laravel 项目中复制现有行中添加新行

如何将Intellij 14中的模块添加到现有项目

如何在 FlowDocument WPF 中以编程方式在现有 Paraghaph 中间添加段落?

在现有项目 React-Native 中添加现有的原生项目 Android

如何将JNI(C / C ++本机代码)添加到现有的Android Studio项目

如何在现有的手风琴搜索代码中添加搜索按钮?

如何在代码上下文窗口的现有组中添加按钮?

我如何在现有的python函数中添加一行代码

如何将对象添加到 DART 中的现有类代码

如何在WPF的Listview中添加项目

如何通过代码访问WPF中的元素?

如何通过节点js将子节点添加到现有json文件中?

如何在Django中通过迁移和数据向现有ManyToManyField添加直通选项

如何通过Powershell在现有JSON文件中添加值和键?

如何通过名称动态地将现有表单添加到集合中

如何向现有项目添加新模块