Silverlight is in some ways a "compatible subset" of WPF, but in other ways it is not. You will most likely have to modify your XAML and backing code if they are of any complexity. The way you setup and run animations are different, data templates differ,
many functions and properties available in WPF classes are not available in the corresponding Silverlight classes, etc.
I ported my Silverlight app (a game) to WPF and it took about 3 hours of fiddling. Going the other way (WPF to Silverlight) can be much more difficult because you may be using a feature of WPF that has no direct Silverlight equivalent and have to do a workaround.
I don't know the specifics about differences in triggers and the visual state manager availability. It would be great for Microsoft to publish a comprehensive diff of WPF classes/functions/properties and Silverlight. Right now the only way I know is to search
MSDN for the WPF class then do the same with the Silverlight version and compare what is available, or use intellisense in the code!
I was very pleased to see (as mentioned in this video) that with the release of Silverlight 2, after installing it the user no longer has to close and relaunch their web browser as they had to do with the betas--well done!
One point of confusion for me is the Silverlight.js file: I am not using it and the beta 2 silverlight project I created didn't include it, but when I created a released silverlight 2 project, Visual Studio created this file and referenced it in the test html
page it generated. Should I add this file as-is to my server files and include the reference to it in my html page?
Edit: I asked the above question on the silverlight.net forum and
got an answer for it (in no time flat!).
Great job Microsoft team! Developing
my game in silverlight was an excellent experience.