Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winforms 在应用程序中显示菜单的最佳方式是什么?_Winforms_User Interface - Fatal编程技术网

Winforms 在应用程序中显示菜单的最佳方式是什么?

Winforms 在应用程序中显示菜单的最佳方式是什么?,winforms,user-interface,Winforms,User Interface,您认为在传统的WinForms应用程序中,向用户展示分层功能列表的最佳方式是什么?菜单系统-假设功能可以分为少量的模块和子模块,但这些子模块没有固定的深度 您喜欢传统的下拉菜单系统、功能区、停靠工具栏、treeview方法或任何其他创新想法吗?您可以选择功能区控件。Microsoft/Office界面习惯于最终成为用户的期望标准。您可以随时选择功能区控件。Microsoft/Office界面习惯于最终成为用户对标准的期望。我经常在顶部固定一个toolstrip,用于最常用的功能。以及所有其他设置

您认为在传统的WinForms应用程序中,向用户展示分层功能列表的最佳方式是什么?菜单系统-假设功能可以分为少量的模块和子模块,但这些子模块没有固定的深度


您喜欢传统的下拉菜单系统、功能区、停靠工具栏、treeview方法或任何其他创新想法吗?

您可以选择功能区控件。Microsoft/Office界面习惯于最终成为用户的期望标准。

您可以随时选择功能区控件。Microsoft/Office界面习惯于最终成为用户对标准的期望。

我经常在顶部固定一个toolstrip,用于最常用的功能。以及所有其他设置了热键的as下拉菜单

如果我有一个可以包含不同类型项目的列表,我会使用底部停靠的toolstrip,根据列表中的选定项目更改其内容。这样,我只有与任务相关的按钮/图标,而没有一堆禁用的按钮刺激视图

我还为自动填充与底部toolstrip相同选项的项添加了上下文菜单。这样,我就可以更快地完成操作,而无需将鼠标向下移动到屏幕底部


作为一个用户,我真的很讨厌ribbon,所以我不会在我的项目中作为程序员使用它。

对于那些最常用的功能,我通常会在顶部停靠一个toolstrip。以及所有其他设置了热键的as下拉菜单

如果我有一个可以包含不同类型项目的列表,我会使用底部停靠的toolstrip,根据列表中的选定项目更改其内容。这样,我只有与任务相关的按钮/图标,而没有一堆禁用的按钮刺激视图

我还为自动填充与底部toolstrip相同选项的项添加了上下文菜单。这样,我就可以更快地完成操作,而无需将鼠标向下移动到屏幕底部


作为一个用户,我真的很讨厌ribbon,所以我不会在我的项目中作为程序员使用它。

在我看来,你的问题没有明确的答案。它始终取决于您呈现给用户和预期使用该应用程序的用户的菜单

具有标准/通用功能的菜单可能是最好的Office样式,即下拉菜单或新的功能区样式。 具有自定义功能的菜单,以及当您声明具有不同深度的多个模块和子模块时,通常最好以树状菜单的形式呈现


从用户的角度来看,一个典型的用户只需要一个标准菜单就可以了,而一个更高级的用户不会介意更高级的功能,比如键盘导航,或者隐藏/显示菜单,或者将其停靠在窗口的另一侧。

我认为你的问题没有明确的答案。它始终取决于您呈现给用户和预期使用该应用程序的用户的菜单

具有标准/通用功能的菜单可能是最好的Office样式,即下拉菜单或新的功能区样式。 具有自定义功能的菜单,以及当您声明具有不同深度的多个模块和子模块时,通常最好以树状菜单的形式呈现


从用户的角度来看,一个典型的用户可以使用标准菜单,而一个更高级的用户不会介意键盘导航等更高级的功能,也不会介意隐藏/显示菜单或将其停靠在窗口的另一侧。

在我看来,最好的方法是确保一切都可以通过多种方式完成

菜单 键盘快捷键 工具箱。。。 因此,用户可以选择它的方式

我真正希望在更多应用程序中看到的是,菜单或选项直接附加到用户正在查看的选定项控件。当然,菜单是与给定内容相关联的


我已经在我的开源项目中实现了这一点,我真的很喜欢自己使用它。看看这个。

在我看来,最好的办法是确保每件事都能以多种方式完成

菜单 键盘快捷键 工具箱。。。 因此,用户可以选择它的方式

我真正希望在更多应用程序中看到的是,菜单或选项直接附加到用户正在查看的选定项控件。当然,菜单是与给定内容相关联的


我已经在我的开源项目中实现了这一点,我真的很喜欢自己使用它。看看这个。

在你的设计中要考虑的一个重要问题是:

最好的解决方案很大程度上取决于您的用户是谁。城市游客信息亭应用程序的UI要求
中心与电站的控制屏有很大的不同……

< P>在设计中要考虑的一个重要问题是:


最好的解决方案很大程度上取决于您的用户是谁。市中心游客信息亭应用程序的UI要求与发电站控制屏幕的UI要求大不相同。

菜单栏、工具栏和功能区用于命令,其中用户对项目的选择作用于窗口中显示的数据对象或整个应用程序。您使用哪一个主要取决于应用程序中的命令数

仅工具栏:大约20个或更少的命令。为每个命令按钮提供图标和文本标签。用分隔符表示层次结构。不超过两个级别–相应地将层次结构展平

带工具栏的菜单栏:超过20个但少于1000个命令。使用分隔符的单个菜单上最多有二十个菜单项通常比级联菜单更好–相应地展平您的层次结构。常用命令应该有加速器。通常将工具栏中最常用的命令限制为不超过30个,主要是只能从对话框中访问的命令。考虑不使用具有加速项的菜单项的工具栏控件——专家访问的一种好方法通常是足够的。

功能区:超过1000个命令。功能区只不过是将不同的菜单栏和工具栏放在不同的选项卡上。为了更好地工作,与功能层次结构顶部的每个选项卡相关联的任务应该是非集成的——用户很少从一个选项卡切换到另一个选项卡。Ribbon在促进高级功能的发现方面也更为有效,其代价是基本功能的可发现性和效率

检查函数层次结构中的项是否可以更好地表示为属性而不是命令。命令执行一个过程,例如打开、查找和复制,而属性更改某些东西的特定特征,例如字体、大小和视角。属性由窗口中的字段控件设置,例如文本框、复选框和下拉列表,而不是菜单项、工具栏控件或功能区控件

充满此类字段控件或数据对象的其他表示形式的窗口是内容块。树控件可用于控制显示的内容块。与选项卡控件一样,当用户经常在内容块之间切换并且不比较内容块时,它们优于多个窗口。当内容量不适合一行选项卡时,树优先于选项卡控件

树中没有任何空节点。用户单击的任何内容都应该显示一个完整的内容窗格——相应地扁平化您的层次结构,甚至使用列表框而不是树


如果用户倾向于选择一个内容块,则在那里完成任务,然后离开应用程序,然后考虑一个“首页”页面,显示所有内容块的全页菜单,可能根据您的层次结构进行空间排列,每一个都可以单击一次。

< P> Menubars、工具栏和色带用于命令,其中,用户对项目的选择作用于窗口中显示的数据对象或整个应用程序。您使用哪一个主要取决于应用程序中的命令数

仅工具栏:大约20个或更少的命令。为每个命令按钮提供图标和文本标签。用分隔符表示层次结构。不超过两个级别–相应地将层次结构展平

带工具栏的菜单栏:超过20个但少于1000个命令。使用分隔符的单个菜单上最多有二十个菜单项通常比级联菜单更好–相应地展平您的层次结构。常用命令应该有加速器。通常将工具栏中最常用的命令限制为不超过30个,主要是只能从对话框中访问的命令。考虑不使用具有加速项的菜单项的工具栏控件——专家访问的一种好方法通常是足够的。

功能区:超过1000个命令。功能区只不过是将不同的菜单栏和工具栏放在不同的选项卡上。为了更好地工作,与功能层次结构顶部的每个选项卡相关联的任务应该是非集成的——用户很少从一个选项卡切换到另一个选项卡。Ribbon在促进高级功能的发现方面也更为有效,其代价是基本功能的可发现性和效率

检查函数层次结构中的项是否可以更好地表示为属性而不是命令。命令执行一个过程,例如打开、查找和复制,而属性更改某些东西的特定特征,例如字体、大小和视角。属性由窗口中的字段控件设置,例如文本框、复选框和下拉列表 a而不是菜单项、工具栏控件或功能区控件

充满此类字段控件或数据对象的其他表示形式的窗口是内容块。树控件可用于控制显示的内容块。与选项卡控件一样,当用户经常在内容块之间切换并且不比较内容块时,它们优于多个窗口。当内容量不适合一行选项卡时,树优先于选项卡控件

树中没有任何空节点。用户单击的任何内容都应该显示一个完整的内容窗格——相应地扁平化您的层次结构,甚至使用列表框而不是树


如果用户倾向于选择一个内容块,在那里完成一个任务,然后离开你的应用程序,然后考虑一个“首页”页面,显示所有内容块的全页菜单,可能按你的层次结构空间排列,每一个都可以单击一次。但是:Ribbon不匹配所有用例。。。。但是:Ribbon并不匹配所有用例。