<Grid x:Name="ContentGrid">
<Grid.Resources>
<Image x:Key="art" Source="art.png" Stretch="None" />
</Grid.Resources>
<ContentControl Content="{Binding MyImg}" />
</Grid>
public Image MyImg
{
get { return (Image)GetValue(MyImgProperty); }
set { SetValue(MyImgProperty, value); }
}
public static readonly DependencyProperty MyImgProperty =
DependencyProperty.Register("MyImg", typeof(Image), typeof(MainPage), null);
public MainPage()
{
InitializeComponent();
ContentGrid.DataContext = this;
// Works.
MyImg = new Image() { Source = new BitmapImage(new Uri("art.png", UriKind.Relative)), Stretch = Stretch.None };
// Doesn't Work. Exception The parameter is incorrect. ???
MyImg = ContentGrid.Resources["art"] as Image;
}
内容Grid.Resources [“art”] as Image不返回null,但是与art.png源相同但分配给依赖属性的图像失败!为什么呢?
答案 0 :(得分:2)
第二行不起作用,因为您引用的图像 - 资源中的图像 - 没有正确设置源。在第一行中,您可以正确设置BitmapImage并使用URI来引用图像。资源中的图像不会这样做。
因此,请尝试使用以下代码替换资源中的图片:
<Image x:Key="art" Stretch="None">
<Image.Source>
<BitmapImage UriSource="art.png" />
</Image.Source>
</Image>