Silverlight разработан как совместимое подмножество WPF (по крайней мере там, где это «имеет смысл»). Это означает, что перенос приложения из Silverlight в WPF должен быть относительно простым. Движение в другом направлении (WPF -> Silverlight), вероятно, будет значительно более сложным.
Пример, который вы приводите в своем вопросе, иллюстрирует этот момент; класс страницы, используемый в шаблоне проекта WPF по умолчанию, не существует в Silverlight. Но класс UserControl существует в обоих. Таким образом, вы можете без проблем скопировать и вставить xaml и код из вашего приложения Silverlight, производного от UserControl, в ваше приложение WPF.
Существуют определенные части Silverlight, которые в действительности не совместимы с WPF, например, все элементы HTML DOM Bridge не имеют никакого смысла в приложении WPF, поэтому его там нет. Также класс MediaElement существенно отличается.