Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xaml 在我的wpf C#应用程序中将单个图像绑定到不同的图像标记不起作用_Xaml_C# 4.0 - Fatal编程技术网

Xaml 在我的wpf C#应用程序中将单个图像绑定到不同的图像标记不起作用

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

xaml代码:

    <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;