Программно добавить элемент управления в Grid RowDefition в WPF 4.5

Я прошел через этот сайт (и многие другие), пытаясь выяснить, что происходит и почему это не работает. Я запускаю VS2012 и создал приложение WPF С# (целевой .NET 4.5). Я новичок в WPF, потратив много лет на кодирование приложений Windows Forms, но решил сделать решительный шаг, и мне до сих пор нравится XAML.

В конечном счете я хочу: 1) Удалите пользовательский элемент управления в определенной строке (RowDefinition) в моей сетке 2) Поместите другой пользовательский элемент управления в эту строку Row

Однако я не могу представить простой элемент управления кнопкой. Я хочу сделать кнопку в строке 4 (3 с нулевым индексом). Вот мой XAML:

<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Custom="http://schemas.microsoft.com/winfx/2006/xaml/presentation/ribbon"
x:Class="TestApp2_WindowsClient.MainWindow"
Title="Test App 2" Height="700" Width="1000" MinHeight="700" MinWidth="1000" MaxHeight="700" MaxWidth="1000" FontSize="12" FontFamily="Segoe UI Semibold">
<Grid VerticalAlignment="Top" Name="gridMain">
    <Grid.RowDefinitions>
        <RowDefinition Height="60"/>
        <RowDefinition Height="152"/>
        <RowDefinition Height="240"/>
        <RowDefinition Height="60"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="0"/>
    </Grid.ColumnDefinitions>

<StackPanel Name="stackButtons1" HorizontalAlignment="Left" Height="50" Margin="4,4,-310,4" Grid.Row="0" VerticalAlignment="Top" Width="300" Orientation="Horizontal" >
        <Button Content="Show Bookings" Height="24" Margin="4,0,0,0" Click="Button_Click_1" />
        <Button Content="Show Radio Buttons" Height="24" Margin="4,0,0,0" Click="Button_Click_2" />
    </StackPanel>

</Grid>
</Window>

Код кнопки (первая кнопка в панели стека):

Button MyControl = new Button();
MyControl.Content = "Test Button!";

Grid.SetRow(MyControl, 3); 
Grid.SetColumn(MyControl, 0); 
gridMain.Children.Add(MyControl); 

Я вижу (в моих часах), что значение count gridMain.Children увеличивается каждый раз, когда я нажимаю первую кнопку, но на экране ничего не отображается.

Это, наверное, что-то действительно глупое, но несколько часов поиска и попытки стека другого кода не помогли.

Спасибо заранее!

Ответы

Ответ 1

<ColumnDefinition Width="0"/>

Возможно, вы могли видеть кнопку, если вы увеличили ширину.