Having worked with WPF for a year, I absolutely love it. It feels like if you follow good design, things just sort of fall into place and work as fluidly as you would expect.

My one concern right now is that it seems that I have to create a value converter for everything when it comes to binding. For example, in one instance, I want to convert a bool to a color. In another, I want to change out the opacity based on bool. I try to reuse my value converters as much as possible (using the converter parameter to make the converter a bit more general). However, it seems I will still need to create a new one for certain scenarios. Is there a better way to manage this? Maybe I'm doing it all wrong.

Also, including images in the application..right now I have the images in the project directory and I add them in resources. Then, I just refer to them <Image source="component;/Images/[filename]"/> or something like that. Is that the right way to include images WPF?