我在我的代码中将图片Source
绑定到BitmapImage
,但它没有显示。
XAML:
<Window x:Class="bleh.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow"
mc:Ignorable="d" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" d:DesignHeight="600" d:DesignWidth="600">
<Grid x:Name="LayoutRoot">
<Image x:Name="current" HorizontalAlignment="Center" Stretch="None" VerticalAlignment="Center" Source="{Binding Picture}" />
</Grid>
</Window>
和我的cs:
public partial class MainWindow : Window, INotifyPropertyChanged
{
/// <summary>
/// Event implementing INotifyPropertyChanged interface.
/// </summary>
public event PropertyChangedEventHandler PropertyChanged;
public BitmapImage Picture { get; set; }
public MainWindow()
{
Uri uri = new Uri("Images/xpto.jpg", UriKind.Relative);
this.Picture = new BitmapImage(uri);
InitializeComponent();
//setup();
}
}
奇怪的是,窗口打开时会显示图像的大小,但我看不到图像。我也尝试在xaml中手动分配,它可以工作。
执行current.source="Images/xpto.jpg"
也有效。
答案 0 :(得分:1)
您的视图(MainWindow)的DataContext未设置,因此没有要绑定的“Picture”属性。如果您希望视图绑定到自身,请添加
this.DataContext = this;
到您的MainWindow构造函数。
答案 1 :(得分:0)
您没有为属性Picture实现INotifyPropertyChanged: public BitmapImage Picture {get;组; } 你要这样做:
BitmapImage _picture;
public BitmapImage Picture {
get {return _picture;}
set{
_picture=value;
OnPropertyChanged("Picture");
}`
}