从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#代码大量的时间和不必要的编码可以节省。
为什么需要在代码中创建它?您可以创建一个数据模板。创建一个视图和一个提供视图逻辑的ViewModel。在你的ViewModel中,你可以设置,获取,隐藏,修改视图。
我建议阅读这篇文章:
MVVM in Depth
WPF/MVVM快速入门教程
问候!