Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: Kliknutí v Gridu - WPF

C# .NET .NET (C# a Visual Basic) Kliknutí v Gridu - WPF American English version English version

Aktivity (1)
Avatar
Petr Valigura
Redaktor
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
Tým ITnetwork
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í
+1 bodů
Řešení problému
Nahoru Odpovědět 9.7.2016 17:36
Pokud chceš odpovědět, klikni na odpovědět. Pokud chceš vložit zdroják, klikni na vložit zdroják (</>)
Avatar
Petr Valigura
Redaktor
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
Redaktor
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  +1 10.7.2016 22:17
Avatar
Petr Valigura
Redaktor
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  +1 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.