我知道,我知道,在你们回答WPF和Winforms不同之前,我已经知道了。我们使用的是cla,所以我们所有的代码都是分开的。我只需要重做UI,我需要一个很好的方法来获得UI从Winforms到Xaml。只是表格而已。我说的不是什么代码什么的。我只是想转换原始对话框和控件。Winforms中的文本框就是Xaml中的文本框。我不期望任何自定义控件或其他任何东西。因为这个原因,我们的应用一直在使用原生的。net控件。
我的问题是。有人知道如何将Winforms对话框转换为Xaml对话框吗?例如,获取winforms设计器文件并将其转换为Xaml。我想要的只是尽可能多的原始控件,如标签、文本框等。没有后台代码,没有数据绑定,没有自定义控件等。
我们的应用程序有数百个对话框,如果我能在表单上得到一些东西,它将节省我们成千上万个小时手动重新创建每个对话框
是和不是。
是的,这是可能的,本质上是通过复制和粘贴WinForms设计器生成的代码,并做一系列的查找和替换操作来替换WinForms的命名空间和名称与WPF的等效(例如Top/Left
与WPF的Margin
)。当然这不会是XAML(相反,它将类似于XAML生成的*.g.cs
文件),但它将是WPF,但它不会是用户友好的(如@highCore提到的,因为你没有利用WPF的布局和分辨率无关机制)。
但是在XAML中重新实现表单和对话框所花费的时间并不多——对于一个中等复杂的表单,可能需要10-20分钟,只要你已经精通XAML,并采用MVVM等现代技术,并且手工操作而不是使用设计器(因为设计器似乎永远不会把事情做好……)