In a WPF MVVM application, you have view models that contain all the logic behind the view, and views that display things. Doing things is linked through commands, which are implemented in the view model class.
When I want to open a new dialog window at the center of the initiating window, I need to set WindowStartupLocation = CenterOwner as well as Owner = something to the new dialog window. Unfortunately, the Owner property must be set to a view, but the view is never known in a view model.
So how is that supposed to work together?
Wild guess: Do I have to bind the view’s location and size to the view model and position the new dialog manually, not using the CenterOwner automatics?
Ideally the ViewModel would be totally unaware of the View(s) that use it. But as you found out that is not always practical.
It is therefore common to have a light coupling, for example as a View property in BaseViewModel.
But your VM should not use any specific Controls or other details from the View.