Adorner指南
指南是装饰元素,旨在突出和强调父表单中的特定点或区域,并为这些区域提供可选描述。 在下面的动画中,五种不同的指南将自动一一显示, 这次交互式导览突出显示了主要的应用程序区域,并指定了它们所基于的DevExpress控件。
指南是Guide类的对象,与其他Adorner UI Manager子项相同,每个指南都有一个目标——分配给该指南的AdornerElement.TargetElement属性的UI元素。 要创建和修改指南,请单击组件的智能标记上的Choose Elements链接,然后使用调用的Collection Editor对话框。
Demo: Guides(需要安装16.2版或更高版本的DevExpress Demo Center)
共同概念
最初,所有adorner指南都在运行时隐藏,要打开这些指南,请将AdornerUIManager.ShowGuides属性设置为true,完成此操作后,半透明的灰色层将使您的整个表单变暗(用户控件)。 选定的引导线通过用透明颜色绘制其目标元素的区域在此基础层中切出一个“hole”,这将为目标区域创建突出显示效果,当前未选择的参考线仅显示其边框。下图说明了一个示例。
最终用户可以单击指南来选择它们,要隐藏所有参考线及其下方的灰色层,最终用户必须按Escape键。 请注意显示指南时,最终用户不能使用表单的任何UI元素,因为所有mouse事件都被 adorner layer拦截。
要循环浏览现有指南,请使用管理器的AdornerUIManager.SelectNext和AdornerUIManager.SelectPrev 方法,这些方法根据其TabIndex属性值显示指南。AdornerUIManager.SelectElement 方法可让您更加具体,并直接导航到所需的指南。
弹出式窗口
如果指南的GuideDefaultProperties.AllowFlyoutPanel 属性不等于DefaultBoolean.False,则每个指南在激活时都会显示弹出面板, 最初此面板为空,如下所示。
要为任何现有指南填充弹出面板,请处理管理器的AdornerUIManager.QueryGuideFlyoutControl 事件, 此事件提供e.SelectedElement属性并标识为其弹出指南的面板。 e.Control属性接受任何控件,这些控件将显示在所需指南的弹出面板中。 下面的代码示例说明了如何使用HTML格式的文本字符串填充指南弹出窗口。
C#:
void adornerUIManager1_QueryGuideFlyoutControl(object sender, QueryGuideFlyoutControlEventArgs e) { if(e.SelectedElement.TargetElement == navBarControl) e.Control = new LabelControl() { AllowHtmlString = true, Width = 350, AutoSizeMode = LabelAutoSizeMode.Vertical, Padding = new Padding(20), Text = "<b>Navigation Bar</b><br>" + "A side navigation control that supports integration with Office Navigation Bar<br><br>" + "Shows navigation options for your currently selected module" }; }
VB.NET:
Private Sub adornerUIManager1_QueryGuideFlyoutControl(ByVal sender As Object, ByVal e As QueryGuideFlyoutControlEventArgs) If e.SelectedElement.TargetElement = navBarControl Then e.Control = New LabelControl() With { .AllowHtmlString = True, .Width = 350, .AutoSizeMode = LabelAutoSizeMode.Vertical, .Padding = New Padding(20), .Text = "<b>Navigation Bar</b><br>" & "A side navigation control that supports integration with Office Navigation Bar<br><br>" & "Shows navigation options for your currently selected module"} End If End Sub
弹出面板可以承载更复杂的内容,而不是简单的标签。 在下图上,弹出按钮显示三个按钮和一个WindowsUI Button Panel。
弹出面板的大小会自动调整来适合其内容,要设置弹出显示位置,请使用GuideDefaultProperties.FlyoutLocation属性。
外观设置
您可以自定义任何引导元素的外观以及外部图层的外观。 要重新绘制参考线(其边界和内部区域),请访问Guide.Appearances(对于单个参考线)和AdornerUIManager.GuideAppearances(对于所有参考线)组中的属性,个别指南外观设置会覆盖相对的全局设置。下图显示了自定义指南。
重要提示:
在为参考线设置自定义背景色时,请使用四位数的ARGB值分配半透明色。
C#:
guide1.Appearances.Selected.BackColor = Color.FromArgb(100, 150, 0, 0);
VB.NET:
guide1.Appearances.Selected.BackColor = Color.FromArgb(100, 150, 0, 0)
可以使用分配给GuideAppearances.Layer属性的AppearanceObject绘制外部层。 与自定义参考色相同,在设置自定义图层背景时,请使用ARGB值代替纯色。
最后,要自定义指南弹出面板,请使用AdornerUIManager.GuideProperties组。 在这里,可以利用GuideDefaultProperties.FlyoutBackColor和GuideDefaultProperties.FlyoutBorderColor 属性来应用自定义外观设置, GuideDefaultProperties.FlyoutOpacity属性使您可以创建半透明的弹出面板,下图说明了具有海军蓝边界和天蓝色背景的非透明引导弹出。