Xaml 在我的wpf C#应用程序中将单个图像绑定到不同的图像标记不起作用
xaml代码:Xaml 在我的wpf C#应用程序中将单个图像绑定到不同的图像标记不起作用,xaml,c#-4.0,Xaml,C# 4.0,xaml代码: <Image x:Name="image2" Margin="-700 -10 0 0"/> 我不知道我是否理解这个问题。但如果是“如何在代码隐藏中创建位图图像并将其分配给两个不同的图像控件”,答案很简单: 在XAML中创建两个图像控件,并为它们指定唯一的名称: <Image x:Name="image1"/> <Image x:Name="image2"/> 我找到了解决这个问题的办法。首先,在代码隐藏中,我使用了一个实现INot
<Image x:Name="image2" Margin="-700 -10 0 0"/>
我不知道我是否理解这个问题。但如果是“如何在代码隐藏中创建位图图像并将其分配给两个不同的图像控件”,答案很简单: 在XAML中创建两个图像控件,并为它们指定唯一的名称:
<Image x:Name="image1"/>
<Image x:Name="image2"/>
我找到了解决这个问题的办法。首先,在代码隐藏中,我使用了一个实现
INotifyPropertyChanged
的类,然后按如下方式绑定图像控件:
<Image Source="{Binding Logo}" />
private ImageSource logo = null;
public ImageSource Logo
{
get
{
return logo;
}
set
{
if (value!=logo)
{
logo = value;
NotifyPropertyChanged("Logo");
}
}
}
然后我将图像设置为如下所示:
private ImageSource image =
new BitmapImage(new Uri("pack://application:,,,/Resources/logo.jpg"));
c.Logo=image;
现在,每次我将图像控件绑定到此属性时,都会显示相同的图像,而不是创建两个图像控件:
<Image x:Name="image1"/>
<Image x:Name="image2"/>
请不要叫它“图像标签”。这是一个图像控件。它工作正常,但希望避免创建太多实例。我试图实现的是这样一个场景:用户可以为两个不同的客户创建两个不同的报告,这样两个客户的徽标和公司名称都会不同,并且由于徽标出现在每个页面上,因此我希望设置每个页面的图像控件以根据选择的客户显示徽标..尝试我的最好清楚的是,这两个不同的报告共享相同的数据,所以真正不同的是徽标和公司名称
private ImageSource logo = null;
public ImageSource Logo
{
get
{
return logo;
}
set
{
if (value!=logo)
{
logo = value;
NotifyPropertyChanged("Logo");
}
}
}
private ImageSource image =
new BitmapImage(new Uri("pack://application:,,,/Resources/logo.jpg"));
c.Logo=image;
<Image x:Name="image1"/>
<Image x:Name="image2"/>
var bitmap = new BitmapImage(new Uri("pack://application:,,,/Resources/image.jpg"));
image1.Source = bitmap;
image2.Source = bitmap;