1

我只是在自学WPF。我已经达到了动态添加控件的地步,并且在非常简单的事情上遇到了障碍。我的代码应该创建一个按钮(如下所示):

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

我的问题是parentControl实际上叫什么?我正在使用标准的 Visual Studio 2012 WPF 模板,我的主窗口名为MainWindow. 除了模板中的内容之外,我在 Window 中没有任何对象

到目前为止,我已经看过:

我找到的最接近的: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 回答