UWP C # Adicionar botão dinamicamente e organizar no StackPanel

Entendo que há algumas postagens sobre como adicionar botões dinamicamente, mas não consegui descobrir como organizá-los nostackpanel. Não tenho problema em adicionar novos botões, mas existe alguma maneira de organizá-los em colunas e linhas?

<Grid Margin="400,0,0,0">
     <StackPanel x:Name="stackpanel">
          <Button x:Name="Button" Height="30" Width="100" Content="Button" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="20,20,0,0" Click="Button_Click"/>
     </StackPanel>
</Grid>

private void Button_Click(object sender, RoutedEventArgs e)
    {
        Button b = new Button(); ;
        stackpanel.Children.Add(b);
        b.Content = "Button";
    }

Por favor ajude. Obrigado

Update: Eu gostaria de adicionar botão (s) com base em quantas vezes o botão é clicado. Adiciona até a quarta ROM e depois passa para a próxima / nova colun

questionAnswers(2)

yourAnswerToTheQuestion