у меня работает с этим xaml
<DockPanel x:Name="MyDock" LastChildFill="True">
<TextBlock DockPanel.Dock="Left"
MouseDown="TextBlock_MouseDown">Child 1</TextBlock>
<TextBlock DockPanel.Dock="Left">Child 2</TextBlock>
<TextBlock>Child 3</TextBlock>
</DockPanel>
и этот код
private void TextBlock_MouseDown(object sender, MouseButtonEventArgs e)
{
UIElementCollection children = MyDock.Children;
Button btn = new Button();
btn.Background = Brushes.LightBlue;
children.RemoveAt(children.Count - 1);
children.Add(btn);
}
когда вы нажимаете текстовый блок, текстовый блок заменяется кнопкой с задним фоном, и вы можете видеть, что это произошло.