Ребят, интересный вопрос в свете "декларативного ГУЯ" и WPF в частности.
Допустим, есть бизнес-задача, где есть ряд однотипных окон (скажем, диалоги и у всех OK/Cancel).
Логично было бы, как мастодонты ООП, заделать базовый MyWindow, где есть кнопки OK/Cancel, а однотипные окна унаследовать от этого самого MyWindow и накидать нужные дополнительные редакторы.
А вот фигушки! 'MyWindow' cannot be the root of a XAML file because it was defined using XAML.
Получается, сели мы с этой декларативностью в лужу! Хотя вопрос-то принципиально разрешимый — в том же Delphi можно было спокойно наследовать окна и дополнять контролами.
Может, и в WPF можно заделать какую-никакую наследуемость? Скажем:
<Window>
<PlaceholderForInheritors />
<Button>OK</>
</>
...и тогда VS будет вместо PlaceholderForInheritors давать редактор для внутренних тегов!
Понятно, что это костыль и кто-то даже захочет что-то вставить ПОСЛЕ кнопки ОК, но тут уж решать — либо космические архитектуры, либо вполне простое решение 99% проблем.
Так или иначе, факт тот, что при всех приятностях декларативности, она проваливается даже на самом базовом принципе ООП.