Laden...

Vergleich von BitmapImages

Erstellt von pepe-je vor 10 Jahren Letzter Beitrag vor 10 Jahren 789 Views
P
pepe-je Themenstarter:in
4 Beiträge seit 2009
vor 10 Jahren
Vergleich von BitmapImages

Ich habe ein Problem beim Vergleich von BitmapImages
In XAML sind zwei Images i03 und i04 definiert.

   <Button  Height="75" HorizontalAlignment="Left"   
             Margin="491,77,0,0" Name="bn04" VerticalAlignment="Top"  
             Width="75" Click="bn04_Click">  
        <Image Name ="i04" Source="Cat.jpg " Stretch="Uniform " />  
    </Button>  
    <Button  Height="75" HorizontalAlignment="Right"   
             Margin="0,77,535,0" Name="bn03" VerticalAlignment="Top"  
             Width="75">  
        <Image Name ="i03" Source="empty.jpg " Stretch="Uniform " />  
    </Button>  

Im C# Code können die Images mit zwei Methoden verändert werden.

        public BitmapImage empty()  
    {  
        bi = new BitmapImage();  
        bi.BeginInit();  
        bi.UriSource = new Uri("/sampleImages/empty.jpg",   
                             public BitmapImage empty()  
        return bi;  
    }  

           public BitmapImage cat()  
    {  
        bi = new BitmapImage();  
        bi.BeginInit();  
        bi.UriSource = new Uri("/sampleImages/cat.jpg",   
                             public BitmapImage empty()  
        return bi;  
    }  
      

      Die Veränderung erfolgt  z.B. durch  

                          i03.Source = cat().  

Das klappt gut.

Nun sollen im Verlauf des Programms Operationen ausgefühert werden etwa unter der Bedingung, dass i04.Source gleich cat.jpg ist

Ich habe dass mit

    if (i04.Source.Equals(cat()))  
    {  
          -----------  
     }  

versucht. Es wird zwar kein Fehler gemeldet, aber die Anweisungen --------
werden nicht ausgeführt, obwohl die Bedingung zutrifft.
Kann mir jemand sagen, was ich falsch gemacht habe?
Vielen Dank!
pepe-je

309 Beiträge seit 2008
vor 10 Jahren

Servus,

die equal() Methode verglicht NICHT ob es sich um das gleiche Bitmap handelt sondern ob die beide Objekte(!) identisch sind. Siehe: Object.Equals-Methode (Object)

Um wirklich zu überprüfen ob es sind um die selben Bilder handelt musst du das selbt implemtieren. Das .net Framwork stellt hierzu glaube ich nichts bereit.

Google ist hier dein Freund. 😉

using System;class H{static string z(char[]c){string r="";for(int x=0;x<(677%666);x++)r+=c[
x];return r;}static void Main(){int[]c={798,218,229,592,232,274,813,585,229,842,275};char[]
b=new char[11];for(int p=0;p<((59%12));p++)b[p]=(char)(c[p]%121);Console.WriteLine(z(b));}}