Crie um controle em Recursos e reutilize-o no XAML WPF

Eu apenas tento criar um símbolo / geometria / controle simples e alterá-lo e reutilizá-lo em vários lugares na mesma janela.

Exemplo: um quadrado preto com um círculo no meio.

O círculo deve então mudar entre vermelho e verde (semelhante a um semáforo de uma luz). Fazer isso com imagens funcionaria. Tento resolvê-lo como um recurso do Windows, mas não entendo.

A idéia: eu escrevo em um recurso, aqui eu tento em um Canvas:

<Window.Resources>
    <Canvas x:Key="Ampel">
        <Rectangle Fill="Black" HorizontalAlignment="Left" Height="52" Stroke="Black"       VerticalAlignment="Top" Width="50"/>
        <Ellipse x:Name="RedGreen" Fill="Red" HorizontalAlignment="Left" Height="27" Margin="11,12,0,0" Stroke="Black" VerticalAlignment="Top" Width="28" RenderTransformOrigin="0.214,0.256"/>
    </Canvas>
</Window.Resources>

Gostaria de colocá-lo dentro de uma grade ou de um painel, mas como faço para referenciá-lo?

<Canvas x:Name="RedGreen1" Height="50" Width="50" DataContext="{DynamicResource Ampel}" /> 

Isso não retorna um erro do compilador, mas não mostra nada na janela. Também não funciona com o WrapPanel ou qualquer outra coisa.

E se funcionasse, como eu poderia me referir a isso em code-behing para mudar a cor do círculo. Algo comoRedGreen1.RedGreen.Fill=Brushes.Green?

Eu li os artigos sobre semáforos. É realmente necessário criar um UserControl ou existe uma maneira de resolvê-lo com window.resources?

A idéia geral do aplicativo é ter uma lista de parâmetros. Cada um com uma entrada correta é marcado em verde e o cálculo só pode ser iniciado se todos os parâmetros estiverem marcados em verde.

E mesmo que funcione com imagens em vermelho / verde, tento entender melhor o WPF / XAML e aprender alguma coisa.

Obrigado.

questionAnswers(3)

yourAnswerToTheQuestion