Cambiando los estilos en tiempo de ejecución en WPF

Estoy tratando de permitir que el usuario personalice los elementos en una aplicación WPF. Lo que estoy tratando de lograr es que, si tengo un cuadro de lista que especifica todos los elementos del formulario (Cuadro de texto, etiqueta, etc.), el usuario puede elegir un elemento del formulario y configurar la propiedad de estilo, por ejemplo, Etiqueta, el primer plano debe estar en color naranja. El primer plano de TextBox debe estar en negro y así sucesivamente. Y según el estilo que pretendo aplicar, todos los TextBox deberían ser iguales.

No puedo encontrar la manera de lograr esto. He probado un ejemplo en el que se pueden cargar múltiples estilos predefinidos en tiempo de ejecución. Así que ahora, me gustaría encontrar una manera de cambiar la propiedad de diferentes elementos en el tiempo de ejecución.

UPDATE:

Intenté crear un nuevo estilo a partir del código que está detrás.

XAML

<Label Content="SAMPLE" Style="{DynamicResource Style1}" x:Name="label1" />
<Button Content="Button" Click="Button_Click" />

y en el código detrás, es decir, al hacer clic en el botón, probé esto:

Style style = new Style { TargetType = typeof(Label) };
style.Setters.Add(new Setter(Control.ForegroundProperty, Brushes.Black));
Application.Current.Resources["Style1"] = style;

Pero no se está actualizando.

Gracias.

Respuestas a la pregunta(3)

Su respuesta a la pregunta