私は何が起こっているのか、なぜこれが機能しないのかを理解するために、このサイト(および他の多くのサイト)を調べてきました。私はVS2012を実行していて、WPF C#アプリ(ターゲット.NET 4.5)を作成しました。私はWPFを初めて使用し、Windowsフォームアプリのコーディングに何年も費やしてきましたが、思い切って採用することを決定し、今のところXAMLを好みます。
最終的に私は次のことを行います:1)グリッド内の特定の行(RowDefinition)のユーザーコントロールを削除します2)その特定の行に別のユーザーコントロールを配置します
しかし、単純なボタンコントロールでも配置できないようです。私がやりたいことは、行4にボタンを配置することです(インデックスが0の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);
最初のボタンをクリックするたびにgridMain.Childrenのカウント値が増加することを(時計で)確認できますが、画面には何も表示されません。
おそらくばかげているかもしれませんが、さまざまなコードのスタックを数時間検索して試しても役に立たなかったのです。
前もって感謝します!
<ColumnDefinition Width="0"/>
幅を広げるとボタンが見えるかもしれません。