NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Petr Valigura
Tvůrce
Avatar
Petr Valigura:9.7.2016 17:02

Čau, dělám aplikaci, kde mám grid. V code behind si pak vytvořím sloupce a řádky, jednotlivé "buňky této tabulky" pak naplním obrázky. To co bych potřeboval, je to, že když kliknu na nějaký obrázek, tak ten obrázek, na který jsem kliknul se změní na jiný.

Jak by se to dalo nejlépe řešit? :)

Odpovědět
9.7.2016 17:02
Občas je to tady dobrá klauniáda...
Avatar
Adam Ježek
Tvůrce
Avatar
Adam Ježek:9.7.2016 17:36

Odchytni MouseDown event pro grid.

private void myGrid_MouseDown(object sender, MouseButtonEventArgs e)
{
    Point p = e.GetPosition(this);
    double x = p.X;
    double y = p.Y;
}

Tím získáš souřadnice kliknutí na gridu. Z vlastností Height a Width gridu zjistíš jeho rozměry, ty vydělíš počtem řádků/sloupců a získáš výšku/šířku jednotlivých buněk. Tou pak vydělíš x a y souřadnice z kliknutí a po ignorací desetinné části získáš číslo řádku/sloupce. Pak to změníš stejně, jako tam nastavuješ obrázek na začátku.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
9.7.2016 17:36
Počkej chvíli, poradím se s křišťálovou koulí.
Avatar
Petr Valigura
Tvůrce
Avatar
Odpovídá na Adam Ježek
Petr Valigura:9.7.2016 18:17

Super, tohle vypadá jako přesně to co potřebuji :) Díky

Nahoru Odpovědět
9.7.2016 18:17
Občas je to tady dobrá klauniáda...
Avatar
ostrozan
Tvůrce
Avatar
Odpovídá na Petr Valigura
ostrozan:10.7.2016 22:17

Může to být i nohem jednodušší - předpokládám, že obrázky máš "Image"

private void myGrid_MouseDown(object sender, MouseButtonEventArgs e)
{
  Image img = e.Source as Image;
  img.Source = new BitmapImage(new Uri("novyobrazek.jpg"));
}

a nemusíš nic krkolomně zjišťovat a přepočítávat :-)

 
Nahoru Odpovědět
10.7.2016 22:17
Avatar
Petr Valigura
Tvůrce
Avatar
Odpovídá na ostrozan
Petr Valigura:10.7.2016 22:51

Tohle je dle mého asi nejlepší řešení problému, který jsem výše popsal :) ... zapomněl jsem tam, ale napsat, že k tomu mám vytvořené dvourozměrné pole, které v podstatě odpovídá tomu gridu, a potřebuju tu hodnotu změnit i v něm. Takže tohle mi asi moc nepomůže. Ale upřímně, jsem vůbec netušil, že změnění obrázku, jde udělat takto elegantně :) a donutilo mě se podívat, co vlastně sender a MouseButtonEven­tArgs všechno nabízí. Takže díky moc :) ... tohle je tady na fóru super, lidi tady poradí nejen řešení problému, ale poskytnou inspiraci a rady na co se dál podívat :)

Nahoru Odpovědět
10.7.2016 22:51
Občas je to tady dobrá klauniáda...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.