首页 > 解决方案 > 如何在网格中动态生成一个/或一些按钮?

问题描述

public MainWindow()
{
    InitializeComponent();
    Grid grid1 = new Grid();
    Button button1 = new Button();
    button1.Content = "Button";
    grid1.Children.Add(button1);
}

我想将按钮添加到网格中,但不知何故窗口是空的,我不知道为什么。

标签: c#wpf

解决方案


您看不到按钮或网格的原因是您没有将 Grid 分配给 MainWindow 的 Content 属性。

您应该在设计器中添加网格控件,以便将其定义为类的成员。之后,您可以像以前一样将按钮添加到网格中,而无需重新实例化网格。

工作示例:

主窗口.xaml.cs

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        Button button1 = new Button();
        button1.Content = "Button";
        gridTest.Children.Add(button1);            
    }
}

主窗口.xaml

<Window x:Class="WpfApp2.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:WpfApp2"
    mc:Ignorable="d"
    Title="MainWindow" Height="450" Width="800">

    <Grid x:Name="gridTest"/>
</Window>

推荐阅读