XAML to po prostu XML pozwalający na np. edycję właściwości kontrolek. Stosuje się go głównie w projektach WPF. Daje to na prawdę spore możliwości - animowanie niektórych obiektów (mi osobiście udało się zrobić obracające się ciastko i powiększanie obiektu po najechaniu na niego kursorem) czy kolorowanie jedynie niektórych składowych tekstu w Textblocku (jest to WPFowski odpowiednik Labela). Generalnie WPF ma tą przewagę, że według Microsoftu gwarantuje, że aplikacja będzie wyglądała jednakowo na każdym systemie (niestety, nie miałem okazji tego przetestować w pełni). Sama przesiadka z WF na WPF to tak na prawdę chwila - musisz pamiętać o kilku rzeczach:
- W WPF zamiast Pictureboxa masz kontrolkę Image. Dostarczenie do niej obrazka jest nieco cięższe niż do Pictureboxa, ale możesz sobie bez problemu napisać klasę, która zajmie się wszystkim
- W WPF zamiast Label możesz użyć Textblock - to taka nowoczesna kontrolka, gdzie możesz kolorować tekst lub pojedyncze znaki. Możesz wprowadzać do niej tekst zarówno przez właściwość Text (wtedy będziesz mógł pokolorować go na tylko jeden kolor) lub przez specjalne 'półprzewodniki' (musiałem, inaczej tego nie potrafię określić) zwane Span lub Run (wtedy tekst można kolorować i formatować do woli), a następnie dodając je za pomocą Textblock1.Inlines.Add(new Run("to jest jakiśtam tekst"));
- W WPF wszystkie kontrolki umieszcza się na specjalnej 'podkładce' - w zależności może to być Grid (można podzielić na kolumny i wiersze i wtedy nie ma problemu z pozycjonowaniem kontrolek) albo Canvas (najprostszy w użyciu). Są jeszcze inne, ale ja korzystałem głównie z tych dwóch
- Niektóre kontrolki mają właściwości ActualWidth. Żeby ustawić je odpowiednio na ekranie za pomocą code behind'u trzeba użyć właściwości Width
- Prawie wszystkie właściwości kontrolek można zarówno edytować w XAMLu, jak i w code behind
Co do nauki, tutaj masz kilka przydatnych linków, które pomogą Ci się zaznajomić z tą technologią:
http://www.wpftutorial.net/
http://www.wpf-tutorial.com/
https://msdn.microsoft.com/en-us/library/ms752299(v=vs.110).aspx
Osobiście nie korzystałem z żadnej książki, a jedynie prostego 'c# wpf equivalent of ...' lub 'c# wpf how to ...' wklepywanego w google niczym mantrę
Jeśli masz jakieś pytania to śmiało, pomogę jeśli będę znał odpowiedź