4

C# WPF上位机开发(软件中窗口的布局)

 8 months ago
source link: https://blog.csdn.net/feixiaoxing/article/details/135179733
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        对于上位机而言,窗口布局有很多种形式,单页面、多页面等等。不过,还有一种分类的方法,大家往往会忽视,那就是针对不同使用者,上位机中界面的开发也要有所区别。大家都习惯了把上位机当成专业软件,但是对于流水线上操作员、嵌入式设备的使用人员来说,这样的界面最好越简单越好,恨不得就是三个按钮,即成功、失败、错误。所以,软件中窗口怎么布局一定要考虑到最终的用户是谁,而不仅仅是根据开发人员自己的使用习惯来定义。

1、通用软件界面

        常用的界面基本就是菜单栏、工具栏、节点树、属性栏、作业界面、日志信息、状态栏这样的形式。菜单栏比较好理解,基本就和常用的windows一样。工具栏本身相当于快捷键,把一些常用的功能通过工具栏的方式快速呈现到用户的面前。节点树,一般就是软件需要操作的数据文件。属性栏,这是对节点的细节进行补充,相关的内容可以调整。作业界面,则是功能区域,也是软件和软件之间真正有差异的地方。日志信息,一般记录软件的运行信息,当然也包括错误信息。状态栏比较简单,主要记录软件的不同状态、版权信息和当前事件等等。

d849066fec9b4738a4aef21ea036e04e.png

2、简易流水线软件界面

        如果相关软件不是给专业人员使用的,而是生产人员、物流人员或者是一线的工人直接使用的,这个时候软件的布局最好简单、直接了解,输入的控件少一点,按钮类的控件多一点,甚至是主要的控件都布局成按钮也是没有问题的。此外,界面中间的MainFunction区域,这个时候也会变成Monitor区域,毕竟对于工人来说,他所要作的就是看任务进行到了哪一步,而不是再去精细化的配置和设置。

197476096cdd4b8faa197643f4acc6c5.png

3、小型嵌入式设备的界面

        现在x86除了可以用于电脑之外,还可以用于小型工控机。所以相当于需要在嵌入式设备上面开发界面,正好主板又是windows系统,所以顺理成章也就用c#开发小型设备的操作界面了。上位机界面就是设备界面。无疑,嵌入式设备的界面肯定没有专业软件那么复杂,当然也不像生产线软件那么简单,难度和复杂度一般介于两者中间。

        所以,通常这个时候我们一般用单页面来实现界面的功能。不过但界面中会有一个可以切换的body区域。这个区域可以根据按钮的选择灵活进行切换。左上角一般会有一个button,提示我们当前第二行的区域是主菜单还是子菜单,需不需要返回。右上角通常还有一个公司的logo。label则是设备名居多,中间的按钮代表各个子模块的功能。最后一个是status bar,多是记录事件、版权等信息。

        需要注意的是,每次单击module之后,只有第二排的界面会发生改变,第一排和第三排基本保持不动,icon会变成一个按钮,这样方便给客户留一个提示。

d6aa7979e95d412399162a65972d7e30.png

4、子窗口的弹出

        除了软件主流程的功能之外,部分功能通常还需要进行参数的配置。这个时候,一个界面基本上就放不下了,所以也就需要另外启动一个window来进行配置。对于c# wpf来说,开发和启动子窗口都是非常方便的。首先我们需要创建一个带窗口的类,

c104df4c2ff54c099025bd82a8255fdc.png

        创建好了之后,就会生成两个文件,一个是xaml文件,一个是c#文件。和MainWindow一样,xaml文件主要就是界面的设计,而c#则是代码逻辑的设计。做好了这一步,相当于子窗口就设计好了。那么,怎么在菜单或者按钮回调函数中激活子窗口呢,其实也简单,

        这里假设子窗口的类是ChildWindow,首先我们实例化一个ChildWindow对象,接着调用这个对象的ShowDiaolog函数,这样就完成了子窗口的调用。

5、后续的话

        上面的几个case只是一种约定俗称的情况,当然遇到不同的场景,大家也可以灵活应对。关键一点,开发者需要深刻了解用户是谁,他们的习惯是什么样的,怎么让他们用起来更方便、更加得心应手,这是界面布局的根本目的。很多开发软件的同学要么精力全部放在了功能上,要么过于讲究整体的美观,不讲究易用性和便捷性,这都是不对的。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK