The simplest way is to re-define the View generation callback: ViewLocator.GetOrCreateViewType:
Such function is invoked every time a view is generated. On a side note: there is an high chance that you still need the custom code in CreateWindow, since a view that has to be displayed in a separate window, is forcefully wrapped inside a Window control, generated by the IWindowManager.
var baseGetOrCreateViewType = ViewLocator.GetOrCreateViewType; ViewLocator.GetOrCreateViewType = (type, displayLocation, context) => { var view = baseGetOrCreateViewType(type, displayLocation, context); //... add your custom code to the view...return view; };