It depends on the size of the project
Here's the guidelines I tend to use
A small project, with a handful of pages or less, I almost always keep to a single project.
If the small project's Data Access layer is large or complex, I might separate that out into it's own layer, but otherwise it just sits in its own folder.
If the project is bigger, I'll almost always have a separate project for the DAL, and any further splitting depends on where the boundaries between the application's functionality lies.
If the application has multiple purposes, each with it's own views, viewmodels, etc, then I'll usually separate each piece into it's own area. If each section is small, I separate them by a Folder. If each section is large, I'll separate them by a project.
If I have multiple projects that need to reference the same set of controls (
RelayCommand, etc), I'll create a project just for the shared infrastructure objects.
If I have a large amount of shared custom styles/templates/resources, I'll create a project just for those.
As a side note, I made a mistake with my first large WPF project and separated them by putting Models in one project, Views in another, and ViewModels in a third. I can tell you now that's not the way to go :)