我正在尝试编写机器人手臂,我有一个C#项目,其中许多不同的类作为控制台应用程序运行,允许机器人移动到各个地方并执行某些任务。机器人没有视觉系统。
关于问题: 我正在使用kinect传感器来提取WPF应用程序中的颜色和深度数据(我正在按照Kinect教程执行此操作),机器人将使用该教程移动到某些位置。唯一的问题是我有一个单独的Console应用程序,如上所述,它有一堆类和函数。在WPF应用程序中,当所有传感器信息都准备就绪时会触发事件。我想将整个控制台应用程序代码放在WPF项目的无限循环中,然后使用传感器信息然后让机器人移动到某些位置。
基本上我要问的是我在哪里可以将代码放入WPF应用程序的无限循环中?
我想我可能完全误解了如何使用WPF应用程序,任何帮助将不胜感激。
答案 0 :(得分:1)
我认为您误解了WPF应该如何运作。 WPF不应该是所有代码运行的结构,它应该是显示系统的层。也就是说,而不是"插入您的控制台应用程序"进入WPF并希望WPF能够完成这项工作,你应该把WPF放在控制台应用程序的TOP上。
看看MVVM模式,看看我的意思。
快速google for" MVVM简介"给了http://www.infragistics.com/community/blogs/anand_raja/archive/2012/02/20/the-model-view-viewmodel-101-part-1.aspx
作为参考,您现有的控制台代码将属于模型层。
非常简短:
模型 - 您的系统,没有显示或使用系统的逻辑 ViewModel - 一个中间人层,可以有效地定义用户与系统的交互方式 View - 一个非常精简的特定于实现的UI版本。
答案 1 :(得分:1)
MVVM是WPF的默认模式,你应该明智地考虑使用这些原则来实现它。
如果您只想迁移代码,可以将其添加到主窗口控件的代码隐藏文件中。这在WPF中被认为是不好的做法,但它是最快的路径。
这更像是winforms编程,所以你有一个构造函数,你可以从中调用其他代码。
如果您正在查看无限循环,您可能希望将其包装在异步await任务方法See MSDN中 - 否则您的UI将在同一个线程上冻结。
希望有所帮助。