Мне неясно, когда вы будете использовать UIElement вместо FrameworkElement, и почему вообще существует класс FrameworkElement.По сути, какие дополнительные функции предоставляет FrameworkElement по сравнению с UIElement?
UIElement
FrameworkElement
Вы никогда не должны наследовать от UIElement (никакой класс кроме FrameworkElement не имеет), среди других свойств у него нет DataContext, отсутствие которого может привести к некоторым неприятностям.
DataContext