A XAML friendly way to replace Win32 custom controls in the WinRT world is to use WinRT custom controls with VisualStateManager states.
See
XAML User and Custom control sample. The custom control is very simple, but your custom control can have as many visual states as you want. And you switch from one state to another using:
VisualStateManager::GoToState(myCustomControl, "StateName", true);