从XAML生成c#代码

本文关键字:代码 生成 XAML | 更新日期: 2023-09-27 17:49:21

在我目前的项目中,我用c#动态地制作UI。这可能是一项非常无聊和困难的任务。那么有没有一种工具可以生成XAML UI标记的c#代码呢?

例如,我在XAML

中有网格
    <Grid  >
        <Grid.RowDefinitions>
            <RowDefinition  />
            <RowDefinition  />
        </Grid.RowDefinitions>
    </Grid>
我想把它转换成
 Grid grdTextField = new Grid();
 RowDefinition firstrow = new RowDefinition();
 RowDefinition secondrow = new RowDefinition();

这是一个简单的例子,但是对于稍微复杂的UI,从后面的代码中很难实现。

编辑:

实际上我得到一个Json,确定我的一个大的网格如何创建。它有六到七种类型的复杂视图,这些视图可以多次出现(因此必须在运行时放置一些逻辑)。所以总的来说,我必须在这个json的基础上创建一个网格。

编辑2:-这是json的一部分,在此基础上,我必须做一个UI

 "decimal_variables": [
            {
                "id": 1, 
                "name": "Time Taken", 
                "var_type": 2, 
                "is_required": true, 
                "default": null, 
                "max_value": "10000.000000", 
                "min_value": "0.000000", 
                "unit": "sec", 
                "score_dependency": 2
            }, 
            {
                "id": 2, 
                "name": "Number of moves", 
                "var_type": 2, 
                "is_required": true, 
                "default": null, 
                "max_value": "1000.000000", 
                "min_value": "0.000000", 
                "unit": "moves", 
                "score_dependency": 2
            }, 
            {
                "id": 3, 
                "name": "Number of hints used", 
                "var_type": 2, 
                "is_required": true, 
                "default": null, 
                "max_value": "100.000000", 
                "min_value": "0.000000", 
                "unit": "hints", 
                "score_dependency": 2
            }
        ], 
        "choice_variables": [
            {
                "choices": [
                    {
                        "id": 1, 
                        "name": "Easy", 
                        "value": "1.000000"
                    }, 
                    {
                        "id": 2, 
                        "name": "Medium", 
                        "value": "2.000000"
                    }, 
                    {
                        "id": 3, 
                        "name": "Tough", 
                        "value": "3.000000"
                    }
                ], 
                "id": 1, 
                "name": "Difficulty level", 
                "var_type": 1, 
                "is_required": true, 
                "default": null, 
                "score_dependency": 3
            }
        ], 
        "boolean_variables": [
            {
                "id": 1, 
                "name": "Is Hint Allowed", 
                "var_type": 1, 
                "default": true, 
                "score_dependency": 3
            }
        ], 
        "text_variables": [
            {
                "id": 1, 
                "name": "Instructions to student", 
                "var_type": 1, 
                "is_required": false, 
                "default": "1. Carefully do the assignment.'r'n2. Time is key in assignment score, so make sure not to waste the time.", 
                "max_length": 1000, 
                "score_dependency": 3
            }
        ], 
        "file_variables": [
            {
                "default": "media/variable-files/supermegafunbits-1024x1024.png", 
                "id": 1, 
                "name": "Image", 
                "var_type": 1, 
                "is_required": false, 
                "file_type": "image/jpeg,image/png", 
                "score_dependency": 3
            }
        ], 

现在在文件变量我必须做一个ui,其中包含一个图像控制,按钮浏览图像,标题TextBlock,和信息TextBlock(这可能是复杂的)。所以我正在寻找一个工具,其中,如果我从xaml的UI可以转换为c#代码大量的时间和不必要的编码可以节省。

从XAML生成c#代码

为什么需要在代码中创建它?您可以创建一个数据模板。创建一个视图和一个提供视图逻辑的ViewModel。在你的ViewModel中,你可以设置,获取,隐藏,修改视图。

我建议阅读这篇文章:

MVVM in Depth

WPF/MVVM快速入门教程

问候!