Answer the question
In order to leave comments, you need to log in
C# WPF programmatically creating a button?
Explain how to programmatically add a button?
We have a Grid with a GroupBox placed in it. Everywhere they say you need to use Children.Add(); But I don't have an object like Children.
<Window x:Class="MApp.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:MApp"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<GroupBox Header="" HorizontalAlignment="Left" Height="100" Margin="10,67,0,0" VerticalAlignment="Top" Width="772" Name="ConfigsBox"/>
<Button Name="TestBTN" Content="Add" Height="50" VerticalAlignment="Bottom" Click="TestBTN_Click"></Button>
</Grid>
</Window>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace MApp
{
/// <summary>
/// Логика взаимодействия для MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
ConfigManager.Init();
}
private void TestBTN_Click(object sender, RoutedEventArgs e)
{
Button newButton = new Button();
GroupBox.Children.Add(newButton);
}
}
}
Answer the question
In order to leave comments, you need to log in
For you, the designer creates a variable in the behind class that is specified in the name property of the component, that is,
ConfigsBox.
Update: GroupBox implements the IAddChild interface, which allows you to accept a single nested control, so ConfigsBox.Children.Add(newButton); I wrote you wrong.
The software addition will:
var button = new Button();
((IAddChild)ConfigsBox).AddChild(button);
GroupBox in WPF does not have Children, but it does have Content. In Content, you need to put some kind of panel, and only then you can add elements to this panel (it has Children).
<GroupBox Header="" HorizontalAlignment="Left" Height="100" Margin="10,67,0,0" VerticalAlignment="Top" Width="772">
<StackPanel Name="ConfigsBox" />
</GroupBox>
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question