在程序开发中,我们经常要引用外部的图片、视频等文件。这些文件如果不被编译进可执行文件里(exe或dll),则可能会有丢失的风险。但是如果项目需要大量和图片和视频,把这些图片和视频全都编译进我们的程序的话,会导致程序的可执行文件变得很大,所以这里需要使用我们的经验权衡利弊。下面我们来看一下怎么把这些外部资源文件编译进我们的程序中。
我们以图片为例,在Image控件中显示一张外部的图片。
首先在当前项目的顶部右击=》添加=》新建文件夹,我的项目目录如下:
文件名可以随意命名,我建了Resource文件夹,下面新建了一个Icon文件夹,用来放程序中的图标。
然后右击Icon,添加现有项,找到图片的路径,点击添加按钮就可以把图片添加到当前文件夹下。
接下来的一步是最关键的一步:右击刚添加的文件,打开属性。
把生成操作设置为Resource,复制到输出目录设置为不复制。如果添加的图片,默认属性就是这样。但是视频文件默认属性不是这样,所以需要手动设置。
现在我们已经成功把文件添加到项目中了,接下来就是怎么在代码里引用这个文件了。
<Image x:Name="Img1" Source="Resource/Icon/13meiweishipin-10.png" Stretch="Fill"/>
这是在XAML文件里引用图片,那么后台代码该怎么写呢?
Uri uri = new Uri(@"/Resource/Icon/13meiweishipin-10.png",UriKind.Relative);
Img1.Source = new BitmapImage(uri);
因为文件的路径是相对路径,所以UriKind是Relative。