如何以编程方式添加用户控件

How to add user controls programmatically

我试图在每次单击按钮时以编程方式添加一个 UserControl。第一次有效,但之后我可以看到控件数量增加但未显示。

private void AddRecord()
    {
        StackPanel wrp = (this.Content as Grid).Children[0] as StackPanel;
        wrp.Children.Clear();
        for (int i = 0; i < m_viewModel.RecordTimeConfig.Count; i++)
        {
            wrp.Children.Add(m_viewModel.RecordTimeConfig[i]);
        } 
    }

每次单击按钮 m_viewModel.RecordTimeConfig 都会增加。 堆栈面板没有设置高度和宽度。

这是你的问题

wrp.Children.Clear();

每次按下该键时,您都会删除堆栈面板中的所有控件,因此您添加了一个新控件,但同时也删除了已有的控件。

我找到问题了。

这是由于用户控件的大小大于 window 的大小。

谢谢大家的帮助