如何基于XML文件自动生成WPF控件?

Jai*_*Oro 32 c# wpf

我有一个Xml文件告诉我必须添加到表单的控件,但这个Xml动态更改,我需要更新表单.目前,我可以阅读XML文件,但我不知道是否可以根据这种情况自动创建表单?

Jea*_*aka 64

对的,这是可能的.

WPF提供了几种在Xaml或代码中创建控件的方法.

对于您的情况,如果您需要动态创建控件,则必须在代码中创建它们.您可以使用其构造函数直接创建控件,如下所示:

        // Create a button.
        Button myButton= new Button();
        // Set properties.
        myButton.Content = "Click Me!";

        // Add created button to a previously created container.
        myStackPanel.Children.Add(myButton);
Run Code Online (Sandbox Code Playgroud)

或者您可以将控件创建为包含xaml的字符串,并使用XamlReader解析字符串并创建所需的控件:

        // Create a stringBuilder
        StringBuilder sb = new StringBuilder();

        // use xaml to declare a button as string containing xaml
        sb.Append(@"<Button xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' 
                            xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' ");
        sb.Append(@"Content='Click Me!' />");

        // Create a button using a XamlReader
        Button myButton = (Button)XamlReader.Parse(sb.ToString());

        // Add created button to previously created container.
        stackPanel.Children.Add(myButton);
Run Code Online (Sandbox Code Playgroud)

现在,您想要使用的两种方法中的哪一种取决于您.

让 - 路易·