据我了解,我可以在 Windows 8 Pro(非 RT)应用程序中使用 Windows 窗体。但是我想知道我是否可以开发一个应用程序,它的主要部分有一个很好的 WinRT 界面,以及一个 WinForms 部分,用于更复杂的部分,这些部分受益于 TreeViews 之类的东西,并且复杂且无法重新实现。我需要哪种开发环境?
2 回答
Windows 应用商店应用程序受到有意限制,不包括整个 .NET Framework,包括 Windows 窗体和 WPF/Windows Presentation Foundation。您不能混合使用这两种成分。它们以非常不同的方式执行和管理(有关如何执行 Windows 应用商店应用程序的详细信息,请参见此处)。
但是我想知道我是否可以开发一个应用程序,它的主要部分有一个很好的 WinRT 界面,而更复杂的部分有一个 WinForms 部分,这些部分受益于 TreeViews 之类的东西,而且复杂且无法重新实现。
甚至从传统的 Win32 应用程序到 Windows Store 应用程序的通信也是被禁止的(对于通过 Store 发布的应用程序——请参阅此处进行讨论)。因此,将您的应用程序分成两部分构建确实不是很实用(并且在两个应用程序之间进行交换的用户体验对于许多用户来说可能是不愉快的)。
在开发不适合典型 Windows 窗体应用程序的触摸友好型应用程序时,必须考虑设计 Windows App Store 应用程序的有意设计和可用性模型。例如,树视图可能会替换为组/详细信息/详细信息类型的导航。
如果您还没有阅读,我强烈建议您阅读开发 Windows 应用商店应用程序的UX 指南。现代 UI 应用程序和 Windows 窗体应用程序之间的转换至少可以说是不和谐的,除非您花费大量精力尝试模仿为 Windows 应用商店应用程序建立的一般 UI 原则。虽然这是可能的,并且有一些第三方可能会提供合理的组件,但它永远不会真正完全相同(并且可能不值得尝试使其相同的工程努力)。
有些人可能会建议您考虑改用 WPF。根据应用程序的类型和开发人员的当前技能组合,这可能非常适合您的需求。同样,有 3rd 方资源可用于模仿现代 Windows 应用商店应用程序的样式,如果需要,您可以将其应用于您的应用程序。
如果你有一个相当复杂的数据输入/操作风格的应用程序,你可能需要健壮的数据验证等,那么 WPF 的学习曲线可能会非常陡峭,这是典型的业务线应用程序。现在也很难说微软在技术方面的发展方向——WPF 虽然没有被弃用,但肯定没有像以前那样得到增强。由于 Visual Studio 2012+ 严重依赖它,WPF 不会消失,但预计会有更少的新功能。一般来说,它是一个强大的平台,它可以满足您的需求。
您可能希望通过将应用程序建模为 Windows 应用商店应用程序的练习来查看您需要的小部件和功能是否存在。根据您的要求,您可能会发现并非所有内容都已存在(Windows 8.1 有一些新的好东西,所以也看看那些!)。
此外,如果您熟悉 JavaScript,您可能还想了解使用 WinJS 创建应用程序。它超级强大,通常可以使用许多现有的 JavaScript/HTML 解决方案,前提是它们满足您的 UI 和功能要求。
WinRT UI 组件只能在 Windows 商店应用程序中使用,而 Windows 窗体只能在桌面应用程序中使用,因此您将无法将两者混合使用。
如果您正在考虑为 Windows 8 制作桌面应用程序,也许您应该考虑使用 WPF。
如果您正在考虑制作 Windows 商店应用程序,那么有很多第三方控件库都有 TreeView,包括WinRT xaml 工具包。