You can do both. You can add controls at runtime from code, you can load xaml from a database and bind against it, you can generate controls at runtime, save the resultant UI as a xaml string and then reload that.
Loading User Information from Channel 9
Something went wrong getting user information from Channel 9
Loading User Information from MSDN
Something went wrong getting user information from MSDN
Loading Visual Studio Achievements
Something went wrong getting the Visual Studio Achievements
You can do both. You can add controls at runtime from code, you can load xaml from a database and bind against it, you can generate controls at runtime, save the resultant UI as a xaml string and then reload that.