Microsoft Office 风格的 WPF 应用程序按钮






3.38/5 (9投票s)
一篇介绍 ApplicationButton 的文章,用于创建符合 Microsoft Office 风格应用程序按钮的圆形按钮

引言
本文介绍了 ApplicationButton 类及其在 WPF 中创建圆角按钮的应用,特别适用于 Microsoft Office 应用程序的应用程序按钮。
背景
Microsoft Office 应用程序中的应用程序按钮用于打开应用程序范围的选项,如“保存”、“打开”和“退出”;它类似于 Microsoft Windows 的“开始”按钮。下面 Microsoft Office Word 的截图用红框标出了应用程序按钮。虽然源代码是作为用于重新创建 Microsoft Office 应用程序按钮功能的一个更大库的一部分创建的,但该控件可以轻松地在任何支持 WPF 的环境中进行使用。
使用代码
添加控件本身很简单,只需要与标准的 WPF Button
进行类似的初始化和连接,但是除了预期的方法和属性之外,还有以下属性允许简单地重新设计按钮的样式;
BaseColor
;默认背景颜色BaseHoverColor
;鼠标悬停在控件上时的背景颜色,平滑地在BaseColor
和此颜色之间动画BasePressedColor
;鼠标按下按钮时的背景颜色(一旦释放鼠标按钮,就会恢复到BaseHoverColor
,或者如果鼠标指针离开控件,则从BaseHoverColor
恢复到BaseColor
)HighlightColor
;默认高亮颜色,即预览图中的较浅部分。请注意,当颜色应用于控件时,alpha 透明度会自动设置,因此设置此颜色时设置的任何 alpha 通道都将被忽略HighlightHoverColor
;鼠标悬停在控件上时的高亮颜色,平滑地在HighlightColor
和此颜色之间动画HighlightPressedColor
;鼠标按下按钮时的高亮颜色(一旦释放鼠标按钮,就会恢复到HighlightHoverColor
,或者如果鼠标指针离开控件,则从HighlightHoverColor
恢复到HighlightColor
)Image
;用于设置控件的图标图像。在 Microsoft Office 的上下文中,这将设置为四个正方形的图案
注意,当设置相关属性时,按钮将自动更新其颜色。除了上述属性之外,还存在 autoGenerateHighlightColors()
函数,用于自动化高亮颜色的选择过程。按钮的默认样式会产生一个如上所示的样式的大中央按钮(即蓝色带有浅蓝色高亮,悬停时变为橙色,按下时变为深橙色)。
要设置按钮图像,请使用 Image
属性;该属性支持透明图像(便携式网络图形,PNG,推荐)。
按钮结构
按钮的结构相对简单,但如果没有高分辨率的大图复制品,则不易看清;非常感谢 Juan Pablo 在 RibbonRoundButton 1.0 上所做的工作,本作品在此基础上进行*宽松*的改编。下图说明了按钮是如何构成的。
- 用于背景颜色的实心
Ellipse
,使用SolidColorBrush
填充 - 一个带有向上倾斜的
RadialColorBrush
的Ellipse
,用于底部高亮部分 - 一个新月形
Path
,带有RadialColorBrush
,其中外围值的透明度低于内围值
3 个叠加 2 个叠加 1。最后叠加一个 Image
。按钮具有非均匀的边距,以适应下拉阴影位图效果。
关注点
奇怪的是,尽管 Microsoft 免费提供(甚至用于商业应用)*大量的 Office 用户界面选集,但 .NET 3.5 框架中目前还没有 Microsoft Office 的任何控件结构。未来的工作将把该库扩展到免费提供类似的 Microsoft Office 功能**;即将推出的一个 Window
替换将方便访问非客户区区域、标题菜单控件盒和文件菜单窗口。
* 在许可下,需要签署保密协议、遵守强制性设计指南和非竞争条款。
** 用于非商业用途,非盈利。
历史
版本 1.0.0.0 - 初始构建
其他许可说明
欢迎在您的工作中随意使用此代码,但请注意,我们使用的是修改版的 Code Project 开放许可证 (CPOL);基本上,它与标准许可证相同,只是未经事先授权,不得将此代码用于商业或非盈利性商业用途。请参阅包含的源文件和演示文件中的 license.txt 或 license.pdf。