在运行时包含项目中的资产

时间:2017-04-23 20:52:10

标签: c# wpf file

在运行时我导入一些资源(包括一个html文件),然后将其复制到项目中的给定目录。刚刚发现文件没有显示的原因是因为项目中包含的文件,即使它们在那里。 问题是,如何在运行时包含一些新添加的资产?

修改

不显示"我的意思是资产就像它们不存在一样,所以程序没有看到它们。但是,我看到副本成功,因为在关闭程序并刷新解决方案资源管理器后,我有一个带虚线的文件。

2 个答案:

答案 0 :(得分:-1)

以下是资产的一些XAML,将在运行时决定:

<Image Source="{Binding Converter={StaticResource SomeImageSourceConverter}}"
         x:Name="SomeImage"/>

这就是代码隐藏:

SomeImage.DataContext = "pack://application:,,,/.../SomeImagePlaceAtRuntime.png";

public class SomeImageSourceConverter : IValueConverter
{
    public object Convert(object value, Type targetType,
    object parameter_, System.Globalization.CultureInfo culture_)
    {
        return (new ImageSourceConverter()).ConvertFromString(value.ToString());
    }

    public object ConvertBack(object value, Type targetType,
    object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

因此,根据DataContext的值,它会加载不同的图像。

答案 1 :(得分:-1)

我认为你所描述的内容听起来就像我几周前在解决方案中遇到的类似问题。

如果您引用了相对于程序正在执行的目录的文件路径,则尝试选择所有未显示的文件,并在VS的属性面板中将“复制到输出目录”设置为“始终复制”

来源:Load local HTML file in a C# WebBrowser

的接受答案