我正在开发一个用于模拟Win 10(台式机)的电气/电子电路的应用程序,并发布到Microsoft Store。
我需要在此应用中显示多个视图。有设计/电路原理图的视图,还有其他用于检查电路响应的视图。
使用导航范例(我认为这是为UWP提出的),用户可以在设计视图中编辑设计,然后导航至电路响应视图,检查数字/曲线,然后导航至电路,然后继续编辑。这种来回导航可能很烦人。
允许同时在屏幕上看到两个视图会更好。 (就像MDI一样,但是这些视图/窗口不会是单独的“文档”,相反,它们是与同一设计用户正在处理的不同方面。) 这可以允许在一个视图/窗口中执行操作,并查看用户所做的更改如何实时影响其他视图。 如果需要,还希望允许用户在全屏上放置任何视图。电路或响应曲线。
非常像这个非常古老的软件:
在这里我找到了UWP中多个视图示例的视频 Multiple views in UWP
第三个也是最后一个选项,我认为是最好的,将使用窗口停靠管理器,就像VisualStudio中使用的那样。这给了用户很大的自由来安排视图/窗口。 AvalonDock是一个美丽的示例,但它是针对WPF而不是UWP的。
所以,伙计们,我请您提出意见,该UWP应用程序进行多视图安排的最佳方法是什么?我该怎么办?您会采取什么解决方案?为什么?
就我个人而言,我认为Windows扩展坞系统是迄今为止最好的。但是我没有为此找到图书馆。有SyncFusion扩展坞管理器,但是它们的UWPControl软件包非常昂贵。 995美元,对我的预算来说太多了...
致谢
答案 0 :(得分:1)
如果要模拟显示到Pages
,可以使用两个Frame
控件来实现。 Frame
控件充当“导航目标and manages a stack of pages. By default every UWP app has a single root frame, but you can override this by having a root *shell* page, which will contain the global navigation - top menu, and two
框架”。
多个视图也是可能的,并且被Paint 3D之类的应用程序使用。不幸的是,由于每个视图都有自己的UI线程,因此在视图之间进行通信有点困难,因此跨视图数据绑定非常复杂。
当然,上述对接模式将更适合您的情况。
使用 Windows社区工具包中的两个控件,可以实现免费解决方案:DockPanel
和GridSplitter
。但是,要由您来实现面板的拖放功能。
对于Syncfusion,可能有机会免费获得该工具包-请参阅Syncfusion Community Edition。这是他们所有控件的免费版本,并且根据常见问题解答,它适用于:
年总收入少于100万美元且开发人员少于5人的公司和个人。
最后,另一种选择是将该应用程序实现为WPF应用程序,然后您将使用.NET Core 3.0和XAML Islands亮起它们,它们应在第一次预览时立即发布。
答案 1 :(得分:1)
我将使用垂直分离器控件向两窗格视图倾斜,电路在左侧,响应曲线在右侧。这将易于实现,并且易于向用户解释。
如果您发现自己希望在应用成熟时获得多个响应视图,请考虑使用右侧窗格中的选项卡控件,或为用户提供添加更多窗格的选项,并使用拆分器来调整窗格大小。
我现在正在开发一个应用程序,该应用程序的整个窗口(左边缘的工具栏和树控件除外)是一个水平滚动区域,其中包含一个水平的视图堆栈面板。当用户打开更多视图时(通过从树控件中进行选择),新视图仅会附加到堆栈面板的左侧。用户可以左右滚动堆栈面板以在视图之间导航。
我真的不能保证它会很好用,因为我还没有将它发布给任何用户,但是我自己使用它,到目前为止,我喜欢它的工作方式。