gpt4 book ai didi

c# - stackpanel 中动态添加的控件在 wpf c# 中不可见

转载 作者:太空宇宙 更新时间:2023-11-03 23:17:59 29 4
gpt4 key购买 nike

我根据堆栈面板内的按钮单击动态添加文本框。但是文本框在 UI 中不可见。这是用于在堆栈面板中创建文本框的代码。

 public void GenerateControls()
{
TextBox txtNumber = new TextBox();
txtNumber.Name = "txtNumber";
txtNumber.Text = "1776";
txtNumber.Background= Brushes.Red;
panel1.Children.Add(txtNumber);
}

为什么它不可见..??这是堆栈面板的 XAML 部分

<StackPanel Name="panel1" Grid.Column="1" HorizontalAlignment="Left" Height="151" Margin="427,60,0,0" Grid.Row="2" VerticalAlignment="Top" Width="216">
<StackPanel Height="144">

</StackPanel>
</StackPanel>

最佳答案

如果您要动态添加控件,请不要限制要添加到的容器的高度(甚至宽度)。

更新您的 XAML 以具有自动高度/宽度。

<StackPanel Name="panel1" 
Grid.Column="1"
Height="Auto"
Width="Auto"
Margin="427,60,0,0"
Grid.Row="2"
VerticalAlignment="Top"
HorizontalAlignment="Left" >
<StackPanel Height="144">

</StackPanel>
</StackPanel>

此外,一旦您添加了一个新的子项,请确保您正在更新 StackPanel 布局。

public void GenerateControls()
{
TextBox txtNumber = new TextBox();
txtNumber.Name = "txtNumber";
txtNumber.Text = "1776";
txtNumber.Background= Brushes.Red;

panel1.Children.Add(txtNumber);
panel1.UpdateLayout();
}

关于c# - stackpanel 中动态添加的控件在 wpf c# 中不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36614775/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com