Dopo la "fatica" fatta per ottenere una porzione di immagine da una più grande (vedi il precedente post)... mi sono accorto che non andava bene per WPF. Ricordo il mio obiettivo che è quello di ottenere delle singole immagini di carte da gioco da una immagine che le contiene tutte in sequenza (un po come si fa in html per intenderci)
Ecco come ho risolto nella nuova versione:
Prima carico l'immagine dalle risorse in questo modo:
1 string imageUri = "pack://application:,,,/Resources/carte.jpg";
2 BitmapImage imageCards = new BitmapImage(
3 new Uri(imageUri, UriKind.Absolute));
4
Mi sono fatto una funzione che ritorna una "CroppedBitmap" dato un seme ed un valore:
1 public CroppedBitmap GetCardImage(Constants.CardSuit suit,
2 Constants.CardValue val)
3 {
4 int ivalue = (int)val;
5 int isuit = (int)suit;
6 int x = (((isuit - 1) * 10) + ivalue - 1) * 55;
7 return new CroppedBitmap(_imageCards, new Int32Rect(x, 0, 55, 101));
8 }
9
Infine come source del controllo immagine do in pasto il risultato della funzione sopra:
1 Card1.Source = deck.GetCardImage(card.Suit, card.Value);