1

私は自分自身にWPFを教えているところです。コントロールを動的に追加する段階に達し、非常に単純なことでレンガの壁にぶつかりました。ボタンを作成するコードを作成します (以下を参照)。

Button button = new Button() { Height = 80, Width = 150, Content = "Test" };
parentControl.Add(button);

私の質問は、parentControl実際に何と呼ばれているのですか? 標準の Visual Studio 2012 WPF テンプレートを使用しており、メイン ウィンドウの名前はMainWindow. テンプレートにあるもの以外にウィンドウにオブジェクトがありません

これまでのところ、私は見てきました:

私が見つけた最も近いもの: WPF ランタイム コントロールの作成

これらの質問はすべて、あなたがそのような基本的なことを知っていることを前提としていますが、私は知りません. 助けてください。

4

1 に答える 1

4

私はあなたの質問を理解していると思います。XAML コードが次のようになっている場合:

<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
</Window>

次に、分離コードは次のようになります。

public MainWindow()
{
    InitializeComponent();
    Button button = new Button() { Height = 80, Width = 150, Content = "Test" };
    //In case you want to add other controls;
    //You should still really use XAML for this.
    var grid = new Grid();
    grid.Children.Add(button);
    Content = grid;
}

ただし、できる限り XAML を使用することを強くお勧めします。さらに、コンストラクターからコントロールを追加するのではなくLoaded、ウィンドウのイベントを使用します。コンストラクターから分離コードでイベントにハンドラーを追加するか、XAML で直接追加できます。XAML で上記と同じ結果を得たい場合、コードは次のようになります。

<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Button Height="80" Width="180" Content="Test"/>
    </Grid>
</Window>
于 2012-12-30T22:18:08.527 に答える