在后面的代码中创建控件并将它们传递给xaml

时间:2017-09-14 14:39:31

标签: c# wpf xaml wpf-controls

是否可以做这样的事情?

public CONTROL selectedControl(string sControl)
{
    CONTROL result = new CONTROL();

    if(sContro.Equals("TextBox"))
    {
        TextBox txtBx = new TextBox();
        // custom TextBox
        result = txtBx;
    }
    else if(sControl.Equals("Button"))
    {
       ...
    }
    return result;
}

我怎么能把它放在XAML中?

1 个答案:

答案 0 :(得分:0)

您可以将任何UIElement添加到您在XAML标记中定义的Children的{​​{1}}属性中。

请参阅以下示例代码。

<强>代码:

Panel

<强> XAML:

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();

        var child = selectedControl("TextBox");
        stackPanel.Children.Add(child);
    }

    public UIElement selectedControl(string sControl)
    {
        UIElement result = null;

        if (sControl.Equals("TextBox"))
        {
            TextBox txtBx = new TextBox();
            // custom TextBox
            result = txtBx;
        }
        //...
        return result;
    }
}