(System.ArgumentException) Значение не попадает в ожидаемое исключение диапазона.
Это исключение, потому что вы пытались установить btn1 как Дочерний элемент popUp2, но btn1 уже имеет родительскую панель. Поэтому, если вы все еще хотите, чтобы btn1 был дочерним элементом popUp2, вы можете сначала удалить его со своей родительской панели или создать новую кнопку и установить ее событие Click как событие Click btn1. Например:
.xaml:
<StackPanel x:Name="MyPanel">
<Button Width="50" Height="30" Name="btn1"
HorizontalAlignment="Center" VerticalAlignment="Center"
Content="Click" Click="Button_Click" />
<Popup Name="popUp1" Width="200" Height="200"/>
<Popup Name="popUp2" Width="200" Height="200"/>
</StackPanel>
.cs:
private void Btn2_Click(object sender, RoutedEventArgs e)
{
MyPanel.Children.Remove(btn1);
popUp2.Child = btn1;
popUp2.IsOpen = true;
}
Или
private void Btn2_Click(object sender, RoutedEventArgs e)
{
Button btn = new Button();
btn.Width = 200;
btn.Height = 50;
btn.Content = "PopUp2";
btn.Click += Button_Click;
popUp2.Child = btn;
popUp2.IsOpen = true;
}