将 XAML WPF 窗口转换为 WinForm

发布于 2024-10-17 07:21:54 字数 59 浏览 1 评论 0原文

是否有任何实用程序或转换器可以将 XAML WPF 窗口转换为 .Net 2.0 Windows 窗体?

Is there any utility or converter to convert XAML WPF window to .Net 2.0 Windows forms form?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

吾性傲以野 2024-10-24 07:21:54

不,而且不太可能有这样的事情; WPF 和 WinForms 是不同的框架,由于 UI 组成、布局差异、定位系统不同等差异,WPF UI 无法真正转换为 WinForms UI。

No, and there's unlikely to be anything like this; WPF and WinForms are disparate frameworks, a WPF UI can't really be converted to a WinForms UI due to differences in UI composition, layout differences, different positioning systems, etc.

瑶笙 2024-10-24 07:21:54

没有工具可以将其转换。可能值得使用 ElementHost 在 WPF 中加载 WPF 组件,这样您就不需要转换并可以重用 WPF 组件。如果您有 WPF 窗口,则需要将其转换为 UserControl 才能工作。

编辑:

.Net 2加载WPF控件的代码

    string dllPath = "C:\\ProjectsTest\\TestSolution\\ActiveXUser\\bin\\Debug\\TestControl.dll";
if (!File.Exists(dllPath)) {
    return;
}

string versionInformation = null;
versionInformation = Environment.Version.Major.ToString() + Environment.Version.Minor;

Assembly loadedAssembly = Assembly.LoadFile(dllPath);

Type[] mytypes = loadedAssembly.GetTypes();

Type t = mytypes[1];
Object obj = Activator.CreateInstance(t);

versionInformation = Environment.Version.Major.ToString() + Environment.Version.Minor;
this.Panel1.Controls.Add(obj);

There is no tool to convert it across. It might be worth using an ElementHost to load WPF components in WPF, that way you don't need to convert and can re-use WPF components. If you have a WPF window you would need to convert this to a UserControl to work.

EDIT:

.Net 2 code to load WPF control

    string dllPath = "C:\\ProjectsTest\\TestSolution\\ActiveXUser\\bin\\Debug\\TestControl.dll";
if (!File.Exists(dllPath)) {
    return;
}

string versionInformation = null;
versionInformation = Environment.Version.Major.ToString() + Environment.Version.Minor;

Assembly loadedAssembly = Assembly.LoadFile(dllPath);

Type[] mytypes = loadedAssembly.GetTypes();

Type t = mytypes[1];
Object obj = Activator.CreateInstance(t);

versionInformation = Environment.Version.Major.ToString() + Environment.Version.Minor;
this.Panel1.Controls.Add(obj);
靑春怀旧 2024-10-24 07:21:54

也许您可以将此 Xaml 库用于 WinForms?

https://winformsxaml.codeplex.com

Maybe you could use this Xaml library for WinForms?

https://winformsxaml.codeplex.com

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文