我有一个用C#编写的用于Windows 8的类库,其中包含一个自定义控件和一个名为Images的文件夹,其中包含一堆图像。在控制模板中我有一个图像
<ControlTemplate TargetType="local:MyCustomControl">
<Grid Background="Transparent">
<Image x:Name="MyImage"
Height="{TemplateBinding Height}"
Width="{TemplateBinding Width}"
Stretch="Fill" />
...
</Grid>
</ControlTemplate>
我想在此控件的代码后面设置其中一个图像(在此类库中)作为此图像的源。 我已经尝试过了:
使用FrameworkElement.BaseUri
同时具有图片的“不复制”和“复制始终”属性值的绝对uri:
this.MyImage.Source = new BitmapImage(new Uri(this.BaseUri, imagePath));
具有“不复制”和“复制图像的属性值”的相对uri:
this.MyImage.Source = new BitmapImage(new Uri(imagePath, UriKind.Relative));
ms-resource
uri scheme。
我怎样才能实现它?
答案 0 :(得分:0)
好的,这很快就升级了。 :)也许,对其他人有用。 解决方案是在路径中使用库的程序集名称:
var assemblyName = this.GetType().GetTypeInfo().Assembly.GetName().Name;
this.MyImage.Source = new BitmapImage(new Uri(this.BaseUri, assemblyName + imagePath));