WPF MVVM将图像从计算机上传到项目文件夹,并将构建操作设置为资源

时间:2017-04-22 00:02:45

标签: wpf mvvm image-uploading

我可以将图片上传到我的项目文件夹" images"在Windows资源管理器中,但不是在我的项目"图像"夹。 (运行.exe和Visual Studio时关闭)

我想将图片复制到我的项目并设置" Build Action"资源和"复制到输出"总是复制。

为什么? 当我的程序(.exe)运行(并且Visual Studio没有运行)时,我在mainWindow中显示了图像。我有一个按钮"上传图片"。当用户上传图像时,它必须在mainWindow中可见。图像以绑定方式显示。 AnyBody可以帮助我吗?

Mainwindow :(工作正常......" Afbeelding"是图像的名称,如" abc.jpg")

<Button DataContext="{Binding Source={StaticResource mainViewModelLocator}, Path=MainWindowViewModel}" Command="{Binding AlgorithmActiefCommand}" CommandParameter="{Binding Content,  ElementName=ollId}" Background="Transparent" BorderBrush="Transparent" Style="{StaticResource ButtonAsImage}">
  <Image Source="{Binding Text, ElementName=image}"  MaxHeight="65" MaxWidth="65" />
</Button>

ViewModel:按下uploadImage按钮&#34; LoadImage&#34;功能开始:

public void LoadImage()
{
//upload image
OpenFileDialog _importAfbeelding = new OpenFileDialog();
_importAfbeelding.Title = "Selecteer een afbeelding";

if (_importAfbeelding.ShowDialog() == true)
{
    var _afbeelding = new BitmapImage(new Uri(_importAfbeelding.FileName));
    ImportPath = _importAfbeelding.FileName;
    string[] _padGesplitst = _importPath.Split('\\');
    ImportNaam = _padGesplitst[(_padGesplitst.Length - 1)];
    string _destinationFullPath = System.AppDomain.CurrentDomain.BaseDirectory;
    DestinationPath = _destinationFullPath.Remove(_destinationFullPath.Length -10) + "images\\OLL\\"+ ImportNaam;
}
try
{
    File.Copy(ImportPath, this.DestinationPath, true);
    MessageBox.Show("Your images is added with name: " + ImportNaam);
}
catch
{
    MessageBox.Show("Unable to open file ");
}
}

现在我在我的&#34;图像中使用Windows资源管理器中的图像&#34; map ...但我的项目中没有显示任何内容。并且名称将保存在数据库中,因为&#34; Afbeelding&#34;用于MainWindow中的绑定。但没有显示任何内容。

MainWindow,图像文件夹中已有图像。最后是没有图像。这是我用上传按钮添加的那个。 enter image description here

这是上传图片按钮(&#34;浏览&#34;) enter image description here

现在它在Windows资源管理器中,但未在MainWindow中显示Binding enter image description here

重启Visual Studio后,它也不会出现在项目中: enter image description here

图像以绑定方式显示,名称正确存储在数据库中 enter image description here

我在这里做错了什么?谢谢

1 个答案:

答案 0 :(得分:0)

我终于找到了一个我想要分享的解决方案。 首先,我改变了上传图像的位置。我现在在调试文件夹中上传它: enter image description here

然后我将图像复制到该文件夹​​: enter image description here

然后很难显示图像。 首先,我在ViewModel中定义了路径: enter image description here

然后为您的图像源(路径+图像名称)构建正确的字符串: enter image description here

最后它奏效了!我希望它可以帮助那些想要在正在运行的程序中上传和使用图像的人。