【发布时间】:2020-01-05 11:15:51
【问题描述】:
C#、.NET Framework 4.8、WinForms:
我想创建一个与 Microsoft Teams 具有相同外观和感觉的垂直图标栏(见图)。 所以悬停、高亮、快捷方式等也应该是一样的。
哪种标准控件最适合此操作?你会接受TreeView 吗?还是我需要制作自定义控件?在 MS Teams 中如何解决?
【问题讨论】:
-
这在 WPF 中很容易。这对你来说是一个选择吗?在 WPF 中,它将是 TabView 或类似的东西。
-
控件本身很简单(计算的semplicity)。您可以构建一个用户控件,一个自定义控件就可以了。更难的部分是复制亮点。在 WinForms 中,可以使用 LinearGradientBrush 对其应用颜色 Blend 来复制它。可以使用 TableLayoutPanel 对齐/组织控件(因此您可以插入/删除单元格,以使特定按钮始终保持在同一位置)。
-
使用 UserControl,覆盖
OnEnter和OnLeave方法,以重绘/显示左侧的彩色条并重绘/混合高光。图标可以添加到标签(用于透明度)或直接绘制在表面上。使用标签,更简单,更容易实现(使用标签的属性进行对齐。它本身也支持双缓冲)。 -
ToolStrip 或一些other options.
-
如果可以选择使用不同的技术,请查看NavigationView,它位于Controls for UWP apps 中。